pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~340 days 'til Xmas
Set by mncharity on 16 January 2009.
00:00 frew_ joined
frew_ Hello friends, I was told that this is the place to ask if I'd like to make commits to the spec test 00:00
00:04 pdcawley left 00:09 ejs1 left
TimToady yes, it is, but Friday night is perhaps not the best time :) 00:09
frew_ That's fine
I can code without it
TimToady nevertheless, /msg me your email addr and preferred nick and I can add you 00:10
frew_ k
TimToady commitbit sent 00:11
frew_ Exciting! Thanks! 00:12
TimToady it's customary to add yourself to AUTHORS as first checkin to make sure it all works
frew_ ok, will do 00:13
thanks
00:13 km2 joined, km2 left
diakopter TimToady: fyi if commitbit ever isn't responding, merely sighup it on feather as root, and it will return to life. 00:16
"Lazarus, sighup!" 00:17
just like that.
00:18 legis joined
pugs_svn r25011 | frew++ | Hello friends! 00:25
00:26 legis left 00:34 pcbuetow joined 00:36 spx2_ left, spx2 joined 00:43 jhuni joined 00:51 pbuetow left 00:55 typename joined 01:04 [particle] joined, kid51 left
[particle] std: ABC: 1; ABC: 2; 01:04
p6eval std 25011: OUTPUT«############# PARSE FAILED #############␤You tried to use an existing typename as a label at /tmp/7wUS6D1kme line 1:␤------> ABC: 1; ABC: 2;␤00:05 83m␤»
[particle] std: loop { ABC: 1; } 01:05
p6eval std 25011: OUTPUT«00:05 83m␤»
[particle] are labels lexically-scoped?
i'm guessing that would be a runtime error, but std doesn't have a runtime 01:06
01:19 Whiteknight joined 01:45 [particle] left 01:59 DemoFreak left 02:00 eternaleye joined
TimToady diakopter: okay, that's good to know. going through the whole restart procedure is a bit of a pain... 02:01
02:01 justatheory left
frew_ a function sig like this: foo ( $bar:) means that bar is a positional param and can be used like this: foo(:bar($baz)) right? 02:09
02:10 jhuni left
TimToady :$bar, not $bar: 02:11
a sig of ($bar:) would indicate that $bar is the invocant of a method
02:14 hercynium joined
Whiteknight As a matter of clarification, why the choice to use : as a suffix and not as a twigil or something here? 02:14
TimToady the invocant marking : is a comma variant
$self: $a, $b, $c
Whiteknight Oh, so it could be written "$bar :", with whitespace?
TimToady yes 02:15
Whiteknight okay, that makes better sense.
thanks
frew_ Ok, that makes more sense
Whiteknight and makes more sense better
frew_ But that also means that very few builtins are supposed to have named parameters
according to the manfile 02:16
TimToady manfile?
02:16 Whiteknight left
frew_ the one generated when I build pugs 02:16
the spec
for S29
TimToady well, from a FP viewpoint having a function with options means your functions aren't correctly decomposed 02:17
frew_ I agree
TimToady so having options is a bit of a design smell at times
but not everyone is a functional programmer :) 02:18
so we're in the business of encouraging clean code, not requiring it... 02:19
frew_ well, I tend to agree with you, but line 88 in t/TASKS says that the builtins can/should have named parameters
TimToady okay, I see what was confusing you 02:21
that $string is in fact an invocant
and as such, a positional parameter
frew_ ooooh
TimToady the task is to allow :$string on the call
frew_ so that's kinda magic-y
TimToady or string($x)
:string rather
frew_ right
TimToady and have it map to positional
(presumably because the position of the name can be derived from the proto decl) 02:22
frew_ hmmm
so basically all string methods should have that same style deal if they have no args when called like $str.foo()
TimToady can omit the () in that case 02:23
frew_ yeah
but still
I am planning on added that stuff to the test and I want to make sure I can do the right thing
TimToady but because it's the invocant, there's no notation for using a name parameter as the invocant 02:24
so line 85 is a bit misleading that way
frew_ 85?
or 88
TimToady *88
sorry
frew_ so should that just be removed for TASKS?
TimToady my foot slipped
frew_ haha, k
from* 02:25
TimToady well, actually, that particular method is exported
so there is a function form where $string is just a positional parameter, not an invocant
so capitalize(:string($x)) makes sense
frew_ so it should be done on any exported functions? 02:26
TimToady an exported method sig should get rewritten to a function sig
but an exported function sig doesn't need to be rewritten 02:27
frew_ You lost me...
TimToady when we export a method, it's no longer a method, but an ordinary function
frew_ k
TimToady it's how we "pun" various builtin methods into functions without having to write two implementations, one a method and another a function 02:28
frew_ my question is: should I still add capitalize(:string($foo)) to the spectest?
TimToady so @array.push(1,2,3) and push(@array, 1,2,3) are really calling the same code
yes
frew_ alright 02:29
and it needs to be done on methods that have our in the front?
is that how they get exported?
TimToady it's the "is export"
frew_ at the end 02:30
gotcha
those are kinda gnarly function/method definitions. Are we going to be writing that kind of stuff in production code or is a lot of that because they are part of the language? 02:31
TimToady it's mostly the latter 02:32
frew_ k
TimToady most user defined functions are just 'method foo ($x, $y) {...}'
frew_ even if they aren't a method but a function? 02:33
TimToady or 'method foo (Int $x, Int $y --> Int) {...}' if you get typey
typical function is 'sub foo ($x, $y) {...}'
frew_ cool
TimToady or 'multi foo ($x, $y) {...}'
well, a multi is likelier to have types 02:34
frew_ yeah, what does that actually mean?
TimToady it means there are other definitions of the foo subroutine, and the dispatcher should pick the best one
suppose you also have 'multi foo ($x) {...}'
then it knows which one to call for foo(1) vs foo(1,2) 02:35
but same principle for types as well as argument count
all the builtin operators are really multi subs with funny names like infix:<+> 02:36
so when you say $a + $b it can decide whether to add to integers, or floats, or complex numbers
frew_ so why do we have to specify mutli?
TimToady s/to/two
frew_ multi*
why can't it figure that out at compile time automatically? 02:37
TimToady the default is an "only" sub, as in p5
so mixing one of those with a multi is likely an error
and an only sub is easier to optimize 02:38
frew_ ah, k
TimToady an inner "my only sub" hides all outer multis of the same name
frew I am guessing inner means private? 02:39
or something
TimToady I just mean an inner lexical scope
02:39 c9s joined
TimToady anyway, the main point is that in perl 6 we try to encourage the programmer to convey the intent such that we can catch mistakes of the 1 vs many variety 02:40
that's also why hyper operators are explicit
frew_ that makes sense 02:41
what is a hyper operator?
like +?
TimToady @a »+« @b adds all the elements in parallel 02:42
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
TimToady like vector addition on a Cray, or in a GPU
frew_ that's awesome
do we have to use unicode to do it?
I don't know how to type those ;-) 02:43
TimToady @a >>+<< @b is also acceptible, though uglier
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
TimToady well, not acceptable to lambdabot :)
frew_ haha, well, that's a really cool feature
TimToady those are the "Texas" versions :)
frew_ hahahaha
02:43 zamolxes joined
frew_ hey, I'm in texas! 02:43
so it's like a mega reduce?
TimToady pugs: (1,2,3) >>+<< (3,2,1) 02:44
p6eval pugs: RESULT«(4, 4, 4)»
frew_ or... not a reduce
TimToady well, without the reduce part :)
pugs: [+] 1,2,3
p6eval pugs: RESULT«6»
frew_ just a parallel thign
thing*
TimToady that's the reduce
frew_ yeah, I read about that a couple days ago
it's the nicest syntax I've ever seen for reduce
TimToady bows 02:45
frew_ so if I wanna reduce a hyperopp do I do like: [+] (1,2,3) >>+<< (3,2,1)
TimToady it's intended to be visually distinct, and have associations with lists
frew_ yeah, I totally got it
I think it's great
what about arbitrary functions?
pugs: [foo] (1,2,3) 02:46
p6eval pugs: OUTPUT«*** ␤ Unexpected "("␤ expecting operator␤ at /tmp/yx314dl62y line 1, column 7␤»
TimToady then you can always call reduce()
frew_ erk
yeah, that makes sense
TimToady it's only defined for infix operator
but that includes user-defined ops
frew_ which can be done like this: (1,2,3).reduce(sub { ...} )
?
TimToady no need for the 'sub' since bare blocks are closures in p6 02:47
frew_ great
TimToady pugs: (1,2,3).reduce({ $^a + $^b })
p6eval pugs: RESULT«6»
TimToady there you go
frew_ cool
very cool
well, is there a way I can view these generated docs in html? 02:48
the 3pm spec files?
TimToady try perlcabal.org/syn/ 02:49
02:49 kid51 joined
frew_ that'll work 02:49
pugs: 1,2,3 >>+<< 3,2,1
p6eval pugs: OUTPUT«*** Hyper OP only works on lists␤ at /tmp/sdHDJxIF6k line 1, column 1 - line 2, column 1␤»
frew_ pugs: (1,2,3) >>+<< (3,2,1) 02:50
p6eval pugs: RESULT«(4, 4, 4)»
frew_ rakudo: (1,2,3) >>+<< (3,2,1)
p6eval rakudo 35937: RESULT«[4, 4, 4]»
pugs_svn r25012 | lwall++ | [STD] more random cleanup 02:52
frew_ One more thing
So for capitalize, should it be capitalize(:string($foo)) or capitalize(:Str($foo))? 02:53
TimToady :string
Str is the type, and isn't used for named params
frew_ yeah
ok
so the way that I know this is 02:54
#1 it has "is export"
and $foo: is the invocant
so that's the named param
TimToady therefore :foo($x) should work
to the function call, but not to the method call
frew_ right.
and what if it has multiple params, like samecase, would that be samecase(:string($foo), $pattern) and samecase($pattern, :string($foo))? 02:55
TimToady in theory, either should work, though the latter is arguably bad style 02:57
frew_ agreed
but it should be valid right?
TimToady we outlawed it once upon a time, but I think it's currently valid. and positionals are just filled in after the named parameters are bound 02:58
frew k
TimToady or, looking at it the other way, any given parameter looks for a named binding before shifting the next positional
frew the first way made more sense to me, but ok 02:59
TimToady the bindings have to be done left to right in the parameter list of the sig, so that defaults can refer to earlier parameters in the list
frew should I skip these if they aren't passing with the preprocessor? 03:00
yeah
TimToady how mean do you feel? :)
good testers feel mean most of the time :)
frew well, I'm usually not a good tester
should I be mean? 03:01
TimToady nobody will shout at you for installing failing tests...
frew hahaha
TimToady in fact, that's kinda the point :)
frew yeah, I hear you
ok
then I won't have them skip
TimToady and we tend to go on a forgiveness rather than permission basis, so if you goof it up, we'll just fix it later 03:02
though it also doesn't hurt to ask if you're unshure
frew yeah, that's the idea
TimToady wonders where 'unshure' came from... 03:03
frew I figure that you guys are trying so hard to make the best language ever; it's a drag if some noob gets a commitbit and burns it all to the ground
with a bad test?
TimToady that's what revision control is for :)
frew anyway, is it supposed to stop the test entirely if the test fails?
yep
the test being the group of tests in the same file 03:04
TimToady well, if you happen to know that it will cause a parsefail
then you can install a "fudge" line like you already see lots of examples of
and then the fudge preprocessor will comment it out or eval it or whatever 03:05
frew but this isn't a parsefail is it?
TimToady no, it should parse fine
std: samecase($pattern, :string($foo))
frew well, I am starting with capitalize
p6eval std 25012: OUTPUT«00:06 105m␤»
TimToady that means it liked it
std: Int: 42; 03:06
p6eval std 25012: OUTPUT«############# PARSE FAILED #############␤Illegal redeclaration of 'Int' at /tmp/bUl8N44VBc line 1:␤------> Int: 42;␤00:05 71m␤»
frew_ wait really?
TimToady that means it didn't
frew_ std: capitalize(:string("fREW"))
p6eval std 25012: OUTPUT«00:06 86m␤»
frew_ weird
TimToady it's just the STD parser
frew_ pugs: capitalize(:string("fREW"))
p6eval pugs: OUTPUT«*** Named argument found where no matched parameter expected: (string,Ann (Pos (MkPos "/tmp/OETdTzqGJX" 1 20 1 26)) (Val (VStr "fREW")))␤ at /tmp/OETdTzqGJX line 1, column 1 - line 2, column 1␤»
TimToady it says how many seconds it took and the memory 03:07
frew_ ok, so pugs is failing but the parser can parse it
TimToady but since it doesn't run it, it says nothing else if it's correct
frew_ right
well, I am just wondering why you would stop halfway through the file if a single test fails
which is what happens for me in capitalize.t
TimToady yes, pugs can't handle it, though I'm not sure if it's a run time error 03:08
frew ok
TimToady anyway, you can use fudge for pugs too
frew right
TimToady it'll rewrite foo.t to foo.pugs, and then you run that 03:09
or foo.rakudo, or whatever
frew ok
k
TimToady the make test tends to do that for you
well, gotta decommute, have fun 03:10
frew make test or make spectest?
alright
thanks for the help
TimToady bbl &
03:22 Limbic_Region left 03:23 hercynium left 03:30 pcbuetow is now known as pbuetow 04:04 kid51 left 04:08 [particle] joined 04:22 sail0r joined 04:24 sail0r left 04:26 pbuetow left 04:28 justatheory joined 04:39 Minthe joined
s1n can multi's be overloaded? that is if there is a 'multi sub myfunc(Int $f) {..}', can i "overload" it in the traditional sense? 04:46
04:47 justatheory left
frew_ pugs: 'text'sameaccent('acdf') 05:14
p6eval pugs: OUTPUT«*** ␤ Unexpected "sameaccent"␤ expecting term postfix or operator␤ at /tmp/FBkLXdEAPn line 1, column 7␤»
frew_ pugs: 'text'.sameaccent('acdf')
p6eval pugs: OUTPUT«*** No such method in class Str: "&sameaccent"␤ at /tmp/komZGH6uqW line 1, column 1 - line 2, column 1␤»
frew_ rakudo: 'text'.sameaccent('acdf')
p6eval rakudo 35939: OUTPUT«Method 'sameaccent' not found for invocant of class 'Str'␤current instr.: 'parrot;P6metaclass;dispatch' pc 287 (src/classes/ClassHOW.pir:145)␤»
frew_ anyone in here know how sameaccent is supposed to work? 05:16
05:49 meppl joined 05:57 Minthe left 05:58 sail0r joined 06:00 bacek joined
bacek perl6: say ("foo\n", "bar\n").chomp.WHAT 06:01
p6eval rakudo 35944: OUTPUT«Str␤»
..pugs: OUTPUT«Array␤»
..elf 25012: OUTPUT«Useless use of a constant in void context at (eval 125) line 3.␤Modification of a read-only value attempted at ./elf_h line 95.␤ at ./elf_h line 4333␤»
bacek perl6: my @a = ("foo\n", "bar\n"); my @b = @a.chomp; say ~@a; say ~@b 06:02
p6eval rakudo 35944: OUTPUT«foo␤ bar␤␤foo␤ bar␤»
..pugs: OUTPUT«foo␤ bar␤␤foo bar␤»
..elf 25012: OUTPUT«Can't call method "chomp" on unblessed reference at (eval 125) line 4.␤ at ./elf_h line 4333␤»
bacek ok. Should .chomp works on arrays?
TimToady no, but hyperchomp should 06:17
06:18 sail0r left
TimToady s1n: the whole point of multi is to support overloading, or are you asking for something else? 06:18
bacek TimToady: thanks. 06:35
pugs_svn r25013 | bacek++ | [spec] Remove @list.chomp tests. .chomp shouldn't work on lists. 06:39
07:11 typename left 07:19 mtnviewmark joined
mtnviewmark std: $a.*(42) 07:22
p6eval std 25013: OUTPUT«00:05 86m␤»
mtnviewmark hmmm... anyone have a clue what that is supposed to mean?
I think $a.(42) is the same as $a(42)
but $a.*(42) 07:23
literal rakudo: my $a = 2; $a.*(42)
p6eval rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
mtnviewmark well - that's nice! 07:25
frew_ pugs: my $a = 2; $a.*(42); 07:26
p6eval pugs: OUTPUT«*** ␤ Unexpected "*("␤ expecting ".", "\187", ">>", "=", "^", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript␤ at /tmp/ipRA08AUFV line 1, column 15␤»
mtnviewmark well... let's look at something that should work
rakudo: my $a = <foo bar baz>; $a.[1] 07:27
p6eval rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
mtnviewmark rakudo: my $a = <foo bar baz>; $a[1]
p6eval rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
mtnviewmark wellllll I suppose that isn't working
I suspect that while .[ ] is supposed to work (and mean the same as just [ ]) --- that .*[ ] and friends are actually meaningless 07:29
frew_ What would that mean? 07:32
mtnviewmark exactly --- where as something like $a.[3] is the same as $a[3] ... $a.*[3] and $a.?[3] and $a.^[3] don't make any sense to me... but are parsed by STD.pm 07:33
also... $a.=[3] is suppose is legal, and oddly sensical: "replace the value of $a to the 4th element of $a"...?!
and $a!{'foo'} is another non-sensical thing... a private hash lookup? 07:34
std: $a!{'foo'}
p6eval std 25013: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/22n3wsUNkq line 1:␤------> $a!{'foo'}␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard
..stopper␤ statement modifier loo...
mtnviewmark whoops 07:35
std: $a.^!{'foo'}
p6eval std 25013: OUTPUT«00:05 86m␤»
mtnviewmark tada
what's that? a private meta hash lookup?
frew_ nice
no clue
mtnviewmark I can fix STD.pm to not parse these beasts...but I don't want to remove them if they have some cryptic meaning 07:36
TimToady in theory they're meaningful, most of 'em
mtnviewmark $a.^!{'foo'} --- ? 07:37
TimToady if .() is just a funny method, then there may be more than one candidate
in which case .*() makes some sense
or there may be no candidate, in which case .?() makes sense
mtnviewmark oh - is that a funny method? as in it looks up a method with the name '()'
frew_ what doeas .*method() mean?
do all of them?
TimToady yes, do all of them 07:38
frew_ hm
mtnviewmark frew_ the () in that is different - those are surrounding arguments
TimToady until one says its the last one
mtnviewmark okay then... oddity of oddities! I'll have to figure out how to get .*{} on the chart! 07:39
TimToady see S13:162
method postcircumfix:<( )> ($capture) {...}
mtnviewmark now -- what is .:meth? is this no longer prefix operators?
TimToady we don't support those any more, I think
mtnviewmark okay STD.pm has 'em
also supports .postop 07:40
TimToady fossil from when :r et al. were implemented that way
mtnviewmark so... $a.++ is there -- should that go?
TimToady no, any postfix may take an optional dot
(except alphanumeric ones, I guess)
mtnviewmark seems odd, after all there are only three postfixes possible there: ++, --, and i
and I thought you decided that .i was a method, not the postfix operator 07:41
TimToady we're trying to establish generic rules for extensibility
yes. $x.i must now be written $x\i
or ($x)i
mtnviewmark okay... so dotted postfixes in, dotted prefixes out, cool (just want the chart to be right!)
TimToady so the dot form is becoming less important
mtnviewmark (in so far as it can match a moving target! :-) ) 07:42
TimToady might go away someday
mtnviewmark (btw: Got a 24" x 18" high quality print proof today of the chart.... it looks awesome if I do say so myself!)
TimToady possibly the dot forms could give direct access to a method form, if the dotless form is mediated by a multi function
mtnviewmark lesse... looks also like STD.pm doesn't parse ! as private method correctly: 07:43
std: $a!foo(3)
p6eval std 25013: OUTPUT«00:05 86m␤»
mtnviewmark but
std: $a!(3)
p6eval std 25013: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/yPvgLzaWwr line 1:␤------> $a!(3)␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤
..statement modifier loop␤ t...
TimToady currently only alpha methods work as private, not sure if we need to allow non-alpha, esp if it's ambiguous 07:44
mtnviewmark well... true, but it *does* work for meta priavtes!
TimToady would make it hard to define postfix:<!> as factorial, for instance
mtnviewmark std: $a.^!(3)
p6eval std 25013: OUTPUT«00:05 86m␤»
TimToady I haven't really had much to do with the .^! forms, that smop internals :) 07:45
*that's
mtnviewmark did you see my comments on meta-ops?
TimToady so perhaps not officially part of the language
mtnviewmark I'd be happy to implement those fixes in STD.pm
if you agree with them
TimToady yes, still working my way through it all
got stuck on your first remarks, and found STD needed some non-trivial work :) 07:46
mtnviewmark most of it was just changes to clean up the implementation and make it more regular -- no real changes to the language
TimToady well, infix:<;> disappeared today, since semilist can parse statements anyway
mtnviewmark The only real change suggested was cleaning up the ops that can be within hyper
TimToady all that is dependent on work in the lexer, unfortunately 07:47
mtnviewmark oh - good - never made it to the chart !
TimToady the current form of metas is kinda hand-to-mouth to get the common ones to work
mtnviewmark I just e-mailed a typo fix in the meta operators.... (don't have commit rights)
TimToady but I'd like to support all combinations of metas that aren't recursive 07:48
and it doesn't do that yet
mtnviewmark no recursive? really? >>>>+<<<< isn't going to be allowed?
TimToady nope
mtnviewmark odd, since >>>>++ is!
TimToady can't have left recursion in a DFA!
mtnviewmark or did you not realize that prefix >> and postfix << are recursive
TimToady well, can't have recursion in a DFA at all.. 07:49
well, it's an accident if it works recursively
mtnviewmark okay - they are iterative
std: $a >>>>++
p6eval std 25013: OUTPUT«############# PARSE FAILED #############␤Obsolete use of >> to do right shift; in Perl 6 please use +> or ~> instead at /tmp/KwrBdZ1VWB line 1:␤------> $a >>>>++␤00:05 86m␤» 07:50
TimToady that's illegal
postfix may never have whitespace
std: $a.>>>>++
p6eval std 25013: OUTPUT«00:05 86m␤»
TimToady hah
well, it's not doing that with the lexer :)
mtnviewmark line 1086: [ ['.' <.unsp>?]? <postfix_prefix_meta_operator> <.unsp>? ]* 07:51
std: ++<<<< $a
p6eval std 25013: OUTPUT«00:08 125m␤»
TimToady yeah, it cheats on those, basically
they aren't really in an alternative, so the lexer doesn't come into play
but infixes can't do that 07:52
not and keep LTM working
mtnviewmark well, okay - I understand the parsing requirements... just a shame that if you have doubled hyper for prefix and postfix, you can't for infix
perhaps then double hyper isn't worth the potential confusion?
TimToady I could if I abandoned LTM for metas
but then things get dicier in other ways
that's my feeling 07:53
you can always define your own infix and go from there
mtnviewmark in any event, one fix was that hyper should allow negated meta
otherwise >>~~<< is valid but >>!~~<< isn't
TimToady yes, well, that part of the lexer isn't fully up to the task yet
mtnviewmark really? why it works for the reduce meta 07:54
TimToady you'll note even the reduce meta cheats
instead of calling infixish
it calls out the infix and meta-infix separately 07:55
mtnviewmark sure - so each meta would have to call the others directly...
also, what is with that trailing « in the reduce productions?
TimToady but infixish has side effects that prevent it from composing right as it stands
again, a hardwired solution to composition rather than a general one 07:56
mtnviewmark ah, well, if so, will need a '<<' version in there as well
TimToady it's very easy to get a combinatorial explosion of possible tokens 07:57
it's quite possible that I'm trying for something impractical in fitting all the metas into the LTM 07:58
mtnviewmark recognizing that it would limit the "joy of meta", perhaps it would be best to only allow "plain jane" operators in the metas -- or just establish a directed hierarchy of inclusion 07:59
TimToady and maybe in the long run the meta bits will have to be considered as separate tokens, and the metaops parsed normally
another approach is to require complex metaops to be space delimited 08:00
thought that doesn't help with postfix, necessarily
*thoug
h
grr
mtnviewmark tis late
TimToady especialy in mtnview :) 08:01
ll
grrr
well, gotta get up at 6 to take teens to a quiz meet, so I'd probably better retire me own self...
mtnviewmark okay - well if you have any questions about what I meant in those e-mails, just give a hollar....
and I'll be looking to your next checkin of STD.pm! 08:02
TimToady seemed pretty self explan
mtnviewmark night
TimToady night, thatnks!
s:3rd/t//
afk & # zzzzz
frew_ pugs: "frew".substr(1,2) 08:03
p6eval pugs: RESULT«\"re"»
frew_ pugs: "frew".substr(0,2)
p6eval pugs: RESULT«\"fr"»
frew_ pugs: "frew".substr(0,-1)
p6eval pugs: RESULT«\"fre"»
08:05 mtnviewmark left
frew_ "froooooooooooooo".substr(1,2,'o') 08:05
pugs: "froooooooooooooo".substr(1,2,'o')
p6eval pugs: RESULT«\"ro"»
frew_ pugs: "froooooooooooooo".substr(1,2,'i')
p6eval pugs: RESULT«\"ro"»
pugs_svn r25014 | lwall++ | [STD] patch from mtnviewmark++
08:14 Minthe joined
frew_ Is anyone awake? 08:14
Matt-W I am, in a sort of just-woke-up way 08:15
frew_ haha
ok
well, do you have any idea how substr knows if it's last argument is a StrLen or an StrPos? 08:16
becuase if the user has to define it there is nothing in the spec test about it
Matt-W I didn't know it could do both, so sorry, no idea 08:17
frew_ well, I am just going by some docs that could also be out of date
so who knows :-)
Matt-W TimToady knows, of course
frew_ yeah, but he just went to bed 08:18
Matt-W S29 currently states that a number is considered to be a length, like in Perl 5 08:21
so it would seem you have to explicitly make a StrPos somehow and give it that
frew_ yeah
Matt-W hmm spelling mistakes
frew_ but I am just wondering if we should also check for the StrLen option 08:22
as it is technically a different function
or method or whatever
yeah, I noticed one of the things was defined as out instead of our
Matt-W Probably. Because S29 mentions that a number is interpreted as characters in the current Unicode level, it seems that a StrLen object maybe carries more information than a plain number would
frew_ maybe 08:23
Matt-W like explicitly saying "four graphemes"
frew_ yeah
Matt-W I don't know this, I'm just speculating what seems sensible
although last time I seriously did that, TimToady appeared and removed the method from the language...
frew_ also, interestingly apparently in the s29 stuff I am looking at pack and unpack aren't exported?
hahahaha 08:24
nice
Matt-W hmm interesting no, pack isn't exported in current S29
and unpack isn't documented
but it's not a method 08:25
frew_ yeah
Matt-W so it probably doesn't need is export - that's for making methods you can call as subs as well, I thought
frew_ but it's tested for
Matt-W hmm
have to bring that up with someone else
frew_ yeah
'm gonna write some of this stuff down and ask tomorrow
08:47 eternaleye left 08:56 iblechbot joined 08:58 ayrnieu left, ayrnieu joined 09:04 On left 09:13 mberends joined 09:20 zamolxes left, stephenlb left 09:51 ejs joined 09:58 smtms left 09:59 frew left, smtms joined, frew_ left 10:01 Minthe left 10:15 masak joined 10:16 me1970 joined
mberends masak: hi, is there any SVG.pm to play with? 10:20
masak mberends: no, but ask again in a few hours.
mberends yes! Druid online!
masak aye! 10:21
there's also a refactoring pending before we can chuck SVG into Druid.
actually, before Druid can expand in a number of ways.
that might happen today as well.
mberends in the same few hours Pod::Parser will more than double its emitters and tests 10:22
10:23 me1970 left
masak impressive. 10:25
10:25 pmurias joined 10:28 spx2 left
mberends have you read some of TimToady's lessons in the last 2 days' backlogs? He has been explaining fine points of p6 language to chatters at odd hours. I would like to distil parts into U4X, but ... where? Several people have voiced documentation ambitions, but ... where? 10:28
10:28 spx2 joined
mberends a wiki ;-) might be a good place 10:29
masak mberends: I will backlog and see what I get. 10:31
mberends: in the meantime, please collect loose ideas in any fashion you prefer, except for in the README file in u4x/ :) 10:32
mberends how do I get a login account on november-wiki.org/ ?
masak mberends: I promise there will be a good place to put things shortly. but until then, we need unsorted ideas, the more, the better. 10:33
mberends: you ask one of the admins very nicely. :)
mberends: actually, viklund holds the keys to the server. 10:34
I'll tell him that you'd like an account.
actually, I'll make a patch for him :) 10:35
mberends I'll give SVG.pm a tryout on my p6 daemon at autoexec.demon.nl:8888 10:37
10:39 pbuetow joined
masak mberends: what is your email address? I want to send you the password. 10:39
mberends planning another netcat based hack today: LWP.pm
this nick @flashmail.com
masak sent.
mberends received. 10:40
masak I should add that it's a bad idea to put important content on that site right now, for several reasons. 10:41
mberends fair enough, there will be replicas elsewhere. Pod::to::mediawiki is beginning to itch... 10:43
pugs_svn r25015 | pmurias++ | [smop] separated smop_base.h into smop-base
masak looking forward to collaborate on that.
I have to do some chores for an hour or two before I dig into today's Perl 6 hacking.
10:50 DemoFreak joined 11:21 araujo left 11:26 mberends left 11:29 spx2_ joined 11:34 spx2_ left 11:39 bacek_ joined 11:40 bacek left 11:43 spx2 left 11:47 pengo joined 11:48 kanru left 11:58 vixey joined 12:20 |jedai| joined 12:27 ejs left 12:52 mberends joined
masak mberends: your account at november-wiki.org is now active. 13:07
mberends thanks, logged in 15 mins ago and corrected a spello on main page 13:09
13:10 duke_leto joined
masak Tene: ping 13:10
mberends++
13:11 lambdabot left
mberends well, [november team]++ 13:11
13:13 lambdabot joined 13:14 icwiener joined 13:23 Whiteknight joined 13:27 hudnix left 13:29 hudnix joined 13:44 kid51 joined 13:46 |jedai| left 13:47 |jedai| joined 14:04 spx2 joined 14:08 icwiener_ joined
s1n TimToady: i'm asking if I can overload a multisub with the same signature 14:12
TimToady: that is, if you have 'multi sub func(Int $v){}', can i defined another 'multi sub func(Int $v)' and overload the currently available one (in whichever namespace)? 14:13
14:24 icwiener left
TimToady not in the same namespace, that would be an ambiguous dispatch, hence illegal 14:34
lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
TimToady however, 'my multi' can be used in an inner scope to override the outer def with that sig
s1n TimToady: 'my multi', okay thanks 14:35
TimToady afk & 14:38
15:00 |jedai| left 15:01 |jedai| joined 15:26 zamolxes joined 15:41 Tene_ joined 15:45 |jedai| left 15:46 |jedai| joined 15:53 Tene left 16:10 smtms left 16:14 ChrisDavaz joined
masak rakudo: say 'does this work?' 16:19
p6eval rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
16:26 rindolf joined, ivantis2 joined 16:27 ivantis2 left
masak looks like feather's memory is all used up. 16:33
16:35 SamB left 16:36 |jedai| left, |jedai| joined 16:43 gravity joined 16:45 |jedai| left, |jedai| joined 16:51 sail0r joined 16:57 sail0r left 17:09 rabbits77 joined, rabbits77 left 17:23 aindilis left 17:25 |jedai| left 17:26 |jedai| joined 17:36 duke_leto left 17:43 masak left 17:49 frew joined
frew TimToady: are you here? 17:50
pmurias @tell masak the evalbot runs on timtowtdi.org not on feather 17:52
lambdabot Consider it noted.
frew Well, does anyone if pack and unpack are really not exported or shouldn't be? 17:54
also: in the substr test substr(Int, Int) is the only multi (it seems) that gets tested. Should we added substr(Int, StrPos) and substr(Int, StrLen)? 17:55
TimToady all functions not defined in the prelude need to be exported, and pack/unpack aren't methods 18:08
re substr, yes 18:09
18:11 ovid joined
ovid Hi everyone. 18:11
Thinking about creating a "minimal" Test.pm which has the absolute fewest features necessary to run the spectest suite, but since there's talk about changing the testing system, I think this might be wasted effort. Thoughts? 18:13
pugs_svn r25016 | frew++ | Added named arguments to string tests 18:16
frew pugs: my StrLen $a = 3; "fREW".substr(2,$a); 18:18
p6eval pugs: RESULT«\"EW"»
frew pugs: my StrLen $a = 3; "fREW".substr(1,$a);
p6eval pugs: RESULT«\"REW"»
ovid frew: glad to see you've started adding stuff. Thanks :)
frew my pleasure
thanks for your post
if you hadn't posted I never would have started 18:19
ovid Now go ahead and post to your journal about how easy it is to help being on the ground floor of creating a new language. Not too many people can say that, but the Perl community makes is easy (particularly audrey++ with -ofun) 18:20
frew by the way, I know that each multi is actually a separate function. Does that mean that for something like substr(Int, StrLen) which is entirely untested I should just copy paste all of the existing tests and run them on the other version of strlen? 18:21
ovid: Yeah, I will. I just wanted to do a commit before I posted :-)
ovid The other versions do need to be explicitly tested. It's not bothering to test "obvious" things which are the most embarrassing failures in my test suites. 18:22
18:22 pmurias left, pmurias joined
frew haha, well, it's a lot of tests, so it makes sense 18:23
ovid And while I hate copy/paste, due to Perl 6's more intelligently handling of arguments does sometimes make this an safer solution. Now if only we had code coverage tools for this ... :)
frew I also noted that the [op] notation for reduce is untested
ovid "an safer solution"? Sigh. I'll learn to type one day. 18:24
frew eh, it's a waste of your time :-)
I tell my coworkers I can't even read unless it's in perl
ovid: I am adding tests for substr(Int, StrLen), should I also add substr(Int, StrPos) or is that good enough as it's (I think) the same as substr(Int, Int)? 18:26
ovid Hmm, I don't know the difference between StrLen and StrPos. The key is whether or not the multi-dispatch is dispatching to different mutlis internally, I would think. 18:27
frew yeah
pugs: "frew".substr(1, StrLen 2)
p6eval pugs: OUTPUT«*** No such subroutine: "&StrLen"␤ at /tmp/WbFBgnUCSV line 1, column 18-26␤»
18:28 vixey left
ovid Where did you see "StrLen" and "StrPos"? I don't think those are types. 18:29
frew they are 18:30
watch
pugs: my StrLen $a = 3; "fREW".substr(1,$a);
p6eval pugs: RESULT«\"REW"»
frew pugs: my StrLen $a = 3; "fREW".substr(1,3);
p6eval pugs: RESULT«\"REW"»
frew wait
maybe not?
ovid And in any event, I don't think that declaring a type on a constant is legal, is it?
frew no
ovid perl6: say Int 2
frew I was just trying it
p6eval elf 25016: OUTPUT«Parse error in: /tmp/sHNp8Wuofa␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say Int 2␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤ STD_red/std.rb:210:in
..`_UN...
..pugs: OUTPUT«*** ␤ Unexpected "2"␤ expecting "=", "(", ":", operator or ","␤ at /tmp/otkj88S5gn line 1, column 9␤»
..rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
frew if you look at the generated pod for substr it has three method defs 18:31
ovid Also, I'm NOT an expert on Perl 6. :)
frew pugs: my StrPos $a = 3; "fREW".substr(1,$a);
p6eval pugs: RESULT«\"REW"»
frew pugs: my StrPos $a = 2; "fREW".substr(1,$a);
p6eval pugs: RESULT«\"RE"»
frew pugs: my StrPos $a = 2; "fREW".substr(2,$a); 18:32
p6eval pugs: RESULT«\"EW"»
frew pugs: my StrLen $a = 2; "fREW".substr(2,$a);
p6eval pugs: RESULT«\"EW"»
frew ok, well either that's wrong or the doc is wrong
or StrPos and StrLen don't mean what I think they mean
ovid I'll look at the pir source to see if I can make sense of that. The POD looks strange to me.
18:33 aindilis joined
frew alright. Yeah, I tried to look at some pir but I just couldn't follow it 18:34
ovid According to the pir (src/builtins/any-str.pir), the next arguments are just ints.
(As far as I can tell) 18:35
frew ok, so the pod is wrong?
because either the pod needs to change or the pir and tests need to change
I think
TimToady I don't know if anyone actually implements the StrPos type 18:36
perl6: my StrPos $p = 3; say ($p+1).WHAT
frew are they supposed to or is that "dead spec"
p6eval elf 25016, pugs: OUTPUT«Int␤»
..rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
TimToady that ought to print StrPos, not Int 18:37
frew pugs: my $a = 3; say ($a+1).WHAT 18:38
p6eval pugs: OUTPUT«Int␤»
frew pugs: my StrLen $a = 3; say ($a+1).WHAT
p6eval pugs: OUTPUT«Int␤»
18:38 pengo left
TimToady perl6: my NoneSuch $p = 3; say ($p+1).WHAT 18:38
p6eval elf 25016, pugs: OUTPUT«Int␤»
..rakudo 35948: OUTPUT«Parrot VM: PANIC: Out of mem!␤C file src/gc/memory.c, line 141␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parrot's root directory) or send an␤e-mail to
..parrot-p...
frew ok 18:39
TimToady nobody really has the types right yet...
frew so should I do the test for StrLen and StrPos anyway then?
TimToady yes
frew k
TimToady didn't I say that already?
frew Yeah, but I was under the impression that it was already in the system 18:40
and I thought if it weren't it might have been removed from the spec
TimToady 09:54 < frew> also: in the substr test substr(Int, Int) is the only multi (it seems) that gets tested. Should we added substr(Int, StrPos) and substr(Int, StrLen)? 18:42
10:08 <@TimToady> re substr, yes
frew sorry
18:42 vixey joined
TimToady np 18:42
18:43 schmalbe joined
frew does a negative StrLen make sense? 18:43
TimToady yes
but not a negative StrPos
frew really? Huh. I would have though it were the other way around
TimToady on the other hand, code that assumes StrPos and StrLen are integers is probably wrong 18:44
you can't have a position in a string earlier than 0
but a StrLen is the difference of two StrPoses
frew I would have figured that it meant count from the end
TimToady and they can come in either order
frew ah
k
TimToady we don't do that in p6
not for array subscripts either 18:45
frew interesting choice
TimToady we use *-1 to count from the end
so we know explicitly that it was intended, and not accidental
frew so I say @foo[1]*-1 ?
18:45 Psyche^ joined
TimToady @foo[*-1] 18:46
lambdabot Unknown command, try @list
frew ah
k
TimToady * means "whatever"
which a subscript will interpret to mean, plug in the size of the dimension here
I oversimplify slightly 18:47
18:47 ovid left
TimToady but the basic idea is that any operator can decide what * means when passed to it 18:47
so 1..* means one to whatever... 18:48
frew so is it reasonable for me to just test this stuff by giving int basted strlens?
based*
TimToady good question
it really depends on whether we ever allow strings with variable-length encodings
but we're moving toward a fixed width encoding by default, so maybe it's okay 18:49
frew so we aren't abstracting the character?
yeah
ok
so leave that on the burner for now then
TimToady biab & 18:50
18:53 jhorwitz joined 18:56 Patterner left, Psyche^ is now known as Patterner 18:58 aindilis left 19:11 eternaleye joined 19:18 kid51 left 19:20 |jedai| left 19:21 |jedai| joined 19:22 rindolf left 19:38 eternaleye left
meppl good night 19:40
19:41 eternaleye joined 19:42 ovid joined 19:43 meppl left 19:44 ovid left 19:46 |jedai| left, |jedai| joined
diakopter @tell mtnviewmark let me know if you haven't received the [original or resent] commit invite... 19:52
lambdabot Consider it noted.
19:58 kisu__ joined 20:02 archpollux joined
archpollux hi all 20:02
i'm trying to compile pugs and it says it can't find Data.FunctorM 20:03
cvs.haskell.org/Hugs/pages/librarie...ctorM.html says this module is deprecated and I can't really find it in my ghc6 installation
Matt-W I don't believe pugs has been worked on for some time 20:04
so it's entirely possible it doesn't compile with recent ghc
frew what version of ghc?
archpollux 6.8.2 20:05
frew yeah, mine compiles fine with 6.8.2 20:06
archpollux is anything usable?
frew mine works totally perfectly
did you ./Configure.PL and ./Make.PL?
archpollux maybe i'm missing some extra packages
Matt-W hmm Data.FunctorM isn't in the ghc libraries docs
archpollux although docs say Data.FunctorM is in base
Matt-W interesting
frew are you using linux and if so what version? 20:07
archpollux yes, debian sid
packaging error you think?
frew well...it can't be THAT much different from ubuntu (what I am using(
maybe?
I kinda doubt it though
I'd google your error 20:08
archpollux hmmm
i am
frew it may be something common in the haskell world
of which I am not really a part :-)
diakopter archpollux: it's much more advisable to use the Pugs hackages
instead of the pugs source from svn.pugscode.org
archpollux diakopter: how do i do that?
mberends hmm, I also failed to build pugs on Debian. the ghc was 6.8.2.
diakopter Pugs is technically maintained outside of svn.pugscode.org now, from what I can tell
20:09 spooneybarger joined
diakopter the new Pugs hackage packages work with the latest release of ghc 20:09
frew note: 6.8.2 is not the latest ghc
20:09 |jedai| left
diakopter 6.10.1 20:09
frew right
diakopter the new Pugs hackage packages work with ghc 6.10.1 20:10
frew I am just saying they have the same ghc that I do and pugs compiled fine for me
20:10 |jedai| joined
diakopter yeah, but many other users have lots of difficulty with it 20:10
frew are there plans to continue maintaining it after rakudo is complete? 20:11
diakopter 'complete' is very much a moving target for all implementations
frew haha, yeah, I know
I was just curious
archpollux i guess i'd better try rakudo instead 20:12
frew archpollux: well, pugs is way nicer to use
archpollux yeah, but since rakudo will become the standard(?), might as well use it
frew yeah
diakopter I think the fact the Pugs hackage packages are very often/recently updated points to its ongoing maintenance (and plans for it) 20:13
archpollux: no one implementation will be "standard", de jure nor de facto, probably.
frew ok
archpollux ok :)
official maybe?
diakopter esp. not official
the Language standards define the language
as expressed in the human-readable Synopses and in the perl6-readable test suite 20:14
archpollux i know
diakopter if an implementation doesn't match those, it's not (quite) Perl 6
archpollux yeah 20:15
i get it 20:16
diakopter but, as far as 'official' goes (according to the 'Perl' intellectual property right holder), rakudo is de facto (but allegedly not de jure) the only implementation funded
archpollux: see svn.pugscode.org/pugs/INSTALL for the recommended way to install pugs. 20:17
esp note the line: Cut here - Instructions below are outdated!
frew Does anyone here know why the substr($str, 0, 5) = "gloop" is in substr.t twice? 20:18
One has #?rakudo todo "substr as lvalue" before it and the other has #?rakudo "exception" 20:19
diakopter based on the different notes, I'd surmise there are two separate difficulties rakudo has with it? 20:21
dunno
frew hm
it's exactly the same code in the two
even the strings are the same
20:25 kisu_ left
pmurias diakopter: ruoso received a grant for smop 20:26
diakopter: hi
diakopter: what is your most recent smop building obstacle? 20:30
20:31 |jedai| left, eternaleye left 20:32 |jedai| joined 20:34 archpollux left 20:37 eternaleye joined
frew Anyone here know if it's valid behaviour for strlen to get a StrPos that's before the initial integer? 20:44
Matt-W What's the best way to write a regex which matches a line of anything at all which does NOT start with a . 20:46
frew Couldn't you do something like: /^[^\.].*/ ? 20:47
Matt-W sure, in perl 5
frew ah, ok, I don't know perl 6 grammars
mberends Matt-W: this one matches non comment lines: / ^ <![#]> / 20:49
Matt-W aah so is that a negated character class? 20:50
mberends afaik
Matt-W cool
diakopter pmurias: oh yeah 20:51
20:53 ejs joined
diakopter pmurias: well, I gave up on mingw,cmd.exe because of the last thing I mentioned to you.. I tried it in MSYS (similar to cygwin), but too much Makefile tweaking was necessary. 20:53
so now I guess I'll just try good old cygwin
20:54 ruoso joined
diakopter ruoso: hi 20:55
pmurias: what is mildew?
21:15 mberends left
pugs_svn r25017 | masak++ | [S29] documented .i method in Num 21:18
21:18 eternaleye left 21:19 araujo joined
pmurias diakopter: mildew is the the p6 to m0ld compiler (it's written in p5 and uses STD) 21:22
diakopter pmurias: oh, neat 21:23
pmurias: I'll let you know soon how the smop toolset building goes on cygwin
pmurias: I think I was just trying to make it difficult on myself(/others?) by using mingw&cmd.exe and MSYS 21:24
pmurias cygwin is supposed to be compatible with linux right? 21:26
21:29 justatheory joined
diakopter yeah, the biggest difference between it and mingw/msys is that cygwin doesn't handle windows-style filesystem paths and does handle *n*x style filesystem paths, while vice versa for mingw on cmd.exe (incl Strawberry Perl) 21:29
21:32 ejs left
diakopter MSYS is a fork of cygwin that tries to change fewer things from windows than cygwin (it still builds binaries linked to a cygwin-like .dll), while the mingw32 environment doesn't need the cygwin .dll to run from a cmd.exe shell 21:33
see www.mingw.org/
21:50 |jedai| left 21:51 |jedai| joined 21:52 c9s_ joined 22:10 c9s left
pmurias ruoso: i'm considering writing a lowlevel signature which would on the RI, and a lowlevel multi which wouldn't look through the lexicals scopes (but Multi could extract variants from after bootstrap) so we could boostrap much more easily 22:11
22:11 schmalbe left 22:18 ovid joined 22:21 ovid left, ovid joined, ovid left 22:25 SamB joined 22:32 hudnix left
ruoso pmurias, the adhoc signature already can use the ri comparator... 22:50
22:51 spx2 left, spx2 joined
pmurias ruoso: hi 22:53
22:55 mtnviewmark joined
mtnviewmark std: $a = \($b X f($c)) 22:59
lambdabot mtnviewmark: You have 1 new message. '/msg lambdabot @messages' to read it.
p6eval std 25017: OUTPUT«Unknown routines:␤ f called at 1 ␤00:05 86m␤»
pmurias ruoso: what does the Multi role look like?
23:00 |jedai| left
pmurias ruoso: maybe we could have prefix:<=>,infix:<+> as CCodes which would be than replaced in the Prelude by proper multis 23:00
frew Anyone know if doing substr(3, StrPos) with StrPos = 2 is valid?
23:00 |jedai| joined
mtnviewmark I'm wondering if \ is really an operator any more.... 23:09
23:10 alester left 23:14 Limbic_Region joined, mtnviewmark_ joined 23:18 jhorwitz left
diakopter mtnviewmark_: did you get the commitbit invitation? 23:28
lambdabot diakopter: You have 1 new message. '/msg lambdabot @messages' to read it.
mtnviewmark_ yes - thanks
though TimToady beat me to applying my fix 23:29
:-)
23:31 mtnviewmark left
mtnviewmark_ hmmm? 23:35
ah... 23:36
23:36 mtnviewmark_ is now known as mtnviewmark 23:40 |jedai| left
ruoso pmurias, the idea is having infix:<+> implemented as a Multi, as soon as we have Multi running 23:40
23:40 |jedai| joined
ruoso pmurias, I think we can delay supporting unary ops as multi for after the compiler bootstrap 23:40
for now we consider prefix, postfix and postcircumfix as methods 23:41
and infix as multi sub
the first candidate for infix:<+> will have the (int,int) signature
so we can sum native ints 23:42
23:49 iblechbot left
pmurias ruoso: what i don't like that if we do thinks as infix:<+> and prefix:<=> as methods during bootstrap we can't easily hide it after bootstrap 23:55
s1_array_iterator.sm0p even uses .postfix:<++> 23:56
frew 46 13 52 7 63 19 23:57
23:59 vixey left, kulp joined