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 barfoo bar» | ||
..pugs: OUTPUT«foo barfoo 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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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/sHNp8Wuofapanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: say Int 2WHERE:/\<-- 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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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 141Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's root directory) or send ane-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
|