pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by TimToady on 25 January 2008.
pugs_svn r21390 | s1n++ | [pugs_s02] added stationary and decreasing ranges (though not specced or 01:35
r21390 | s1n++ | passing)
Auzon s1n: Last night TimToady++ mentioned that it was specced 01:38
s1n Auzon: the .perl is specced? 01:39
or the decreasing ranges?
Auzon yes. S03:2641
err, .perl
s1n how do i read that, what is that after the colon?
Auzon by decreasing ranges, do you mean like 5 .. 1? If so, that's not valid
s1n yeah, i discussed decreasing ranges with bacek last night 01:40
Auzon The value after the colon is the line number (presumably because he acked or grepped for it)
The line number in the .pod that is
s1n we flipped through the spec and didn't see any specific mention that they have to be monotonically increasing 01:41
where's std.pm stashed so i can look this up?
Auzon pugs/src/perl6/STD.pm ? 01:42
s1n btw, the .perl discussion came up because moritz_ told me it wasn't specced, i didn't see TimToady's comment
Auzon Yeah, you pinged out, and missed it in #parrot 01:43
s1n err, i don't really know how to read this, and it looks like it's using a unicode character op, so i'll take his word that it's safe to do the .perl in tests 01:44
anyways, the decreasing ranges thing came up becausei wanted to try it (the synopsis only described them in a general sense), and it didn't work, i talked some with bacek, and we agreed to just add them in skipped 01:46
we can remove them later if need be i suppose
Auzon They're not allowed in P6 though :-/ 02:03
s1n where does it say they're specifically not allowed? 02:03
i.e. they are strictly monotonically increasing
Auzon "Ranges are not autoreversing: 2..1 is always a null range. Likewise, 1^..^2 produces no values when iterated, but does represent the interval from 1 to 2 excluding the endpoints when used as a pattern." 02:04
first paragraph under perlcabal.org/syn/S03.html#Range_semantics
lambdabot Title: S03
s1n hmm 02:05
where'd you find this, what is perlcabal?
well, ok, i'll revise the tests to verify these things 02:06
Auzon perlcabal.org is the webserver running on Feather, a community development server
s1n i knew what feather was, just didn't know it hosted up the spec
Auzon They have the suite crossrefed with the tests. It's very useful.
s1n why are the semantics of ranges tested in S02 and S03? 02:08
Auzon the tests in S02 refer to the data structure. The tests in S03 refer to the operator used to construct them 02:09
I suppose they probably should be combined, but it might be a bit lengthy then
s1n yeah but there are a number of tests in common
they're testing basic stuff like .. in both places 02:10
i didn't know about S03-operators/range.t doing this as well, i basically shouldn't have added those tests and probably think we should remove the duplicate tests
Auzon Combining and reducing duplicates would be good as long as coverage is still good 02:11
s1n sigh, nothing like having to roll back your first change 02:12
Auzon Don't rollback, just revise ;) 02:13
s1n what needs revising, i was testing the semantics, which s02 doesn't really do 02:13
take a look at those changes and what's being tested in s03-operators and tell me what you think should be modified here 02:14
Auzon I don't see many (if any) tests for reversed ranges in S03, so you can either split them between S02 and S03, leave them be, or combine S02/S03. 02:18
As for your tests, you can change them to check if they fail, or write them using 'reverse' or ':by(-1)' (if numeric). 02:19
Auzon also, a heads up: <a b c> is the same as qw(a b c) so you should not include the commas. You can also omit the square brackets if you want 02:20
s1n okay well, i could move the autoreversing range tests to s03, have them check for failure, and leave the data-type specific tests in s02 02:33
s1n Auzon: should I have the s02 tests just do the .perl tests and have s03 test autoreversing ranges? 02:50
it looks like the tests i added for autoreversing ranges really could be moved over to s03, but i can leave them there testing .perl 02:51
Auzon That's fine 03:02
If they work in either, just leave them where they are.
s1n well, the tests i added to s02 had to be skipped because i didn't know autoreversing arrays were specifically not supported 03:04
i'm basically going to change the s02 tests to just test .perl, and only the basics and let s03 test the details 03:05
Auzon Sounds good.
hm. The Rakudo test graph hasn't updated since 7-15... 03:06
pugs_svn r21391 | lwall++ | [STD] much improved error reporting, many buglets fixed 07:23
TimToady oh, and it parses "use v6;" correctly now :) 07:25
pugs_svn r21392 | lwall++ | [STD] implement :P5 07:56
r21392 | lwall++ | [S02-magicals] various cleanups mostly involving rand 1000
bacek TimToady++ 07:59
pmurias ruoso: hi 11:03
ruoso pmurias, hi 11:04
pmurias ^!methods serves only as information for the metaclass?
ruoso pmurias, I thought ^!methods as the RW api for adding methods... 11:06
it's declared as an Array... but it should probably be a Hash of Array of Method
pmurias but only the metaobject interprets the ^!methods? 11:07
p6opaque passes all method calls to the metaclass, not looking at what is stored in ^!methods? 11:09
ruoso yes... p6opaque directly delegates to the metaclass 11:12
it only intercepts the .^! calls
it's up to the metaclass to decide how to dispatch the method call
pmurias could we store the metadata in instance storage? 11:14
istance storage being also called private storage 11:16
ruoso pmurias, hmmm... the instance storage is package-oriented 11:19
the metadata is prototype/class oriented
pmurias it's a HoH?
ruoso the instance storage? yes... 11:20
because each package has a "private namespace" in the object
that's how $!a works
the methods, otoh, are not package oriented 11:21
and are inheritable
that's how $.a works
if we were talking about strict prototype-based OO, we could have simply "instance storage" 11:22
but even then... the notion of "defined"ness would be messed up
by default, in p6opaque, an object is defined if it has instance storage
pmurias what i mean is that the metaclass might deside to store methods in an entirely different format than the supplied metaclass?
pugs_svn r21393 | masak++ | [various test files] fixed a few spelling errors and a missing semicolon
pmurias s/?/ 11:23
ruoso pmurias, supplied by the object, you mean...
pmurias yes
ruoso yes... it can
pugs_svn r21394 | masak++ | [t/spec/S29-list/pick.t] answered challenge by Auzon++:
r21394 | masak++ | "There should be a better way to write this"
ruoso it can have a WSDL document stored somewhere
pmurias sorry meant metadara
ruoso methods is part of the metadata 11:24
pmurias * metadata
and the metadata structure is hard coded
ruoso but you can inherit objects that have different structures
pmurias search.cpan.org/~sartak/Class-MOP-0...patibility 11:28
lambdabot Title: Class::MOP - A Meta Object Protocol for Perl 5 - search.cpan.org, tinyurl.com/6gywk7
pmurias re package oriented we migh have a metadata pseudo-package 11:32
pmurias i'll work on Arrays untill we think it out 11:39
ruoso had a network problem 11:40
re metadata package... that's why there's a REPR api 11:41
to make that independent on how the object is laid out
pmurias, the thing is that the HOW will ask the object using the REPR api 11:42
there are three "sections" of the REPR api...
the first is about WHENCE and WHAT 11:43
instanceof === WHAT
(no instanceof means that object is its own WHAT)
pugs: say Int.WHAT 11:44
p6eval pugs: OUTPUT[Int␤]
ruoso then you have the meta data (which includes isa, does, HOW, WHO, methods and attribute metadata) 11:46
and also the intance storage ( HoH, holding private storage for each package)
pmurias where does the list of prototypes the object inherits from live? 11:47
ruoso pmurias, we could have a mixture, meaning that an object could both have instance data *and* metadata 11:50
but we would have a problem that de user could call Object.BUILDALL()
and undef would be defined 11:51
pmurias is it forbiden by the spec? 11:52
ruoso that's why we're considering restrict it in a way that an object either has metadata or instance data
pmurias, it's underspecced
but TimToady also agreed that this restriction could be sane..
pmurias in prototype oo an object has both 11:53
ruoso meaning that $foo does Dog would create a new anon prototype
pmurias, except if you have prototype-oo by delegation
but I'm not really sure that restriction should be set
pmurias what is prototyoe-oo not by delegation 11:54
* prototype
ruoso where every method is inside the object itself
and you clone instead of inherit
ruoso brb& 11:57
bacek pugs: say "$" 13:58
p6eval pugs: OUTPUT[$␤]
masak bacek: arguably it could be a syntax error too, as in Perl 5 14:07
bacek masak: agreed.
pmurias elf: eval_perl5(' print " $" ";') 14:09
p6eval elf 21394: OUTPUT[String found where operator expected at (eval 118) line 1, at end of line␤ (Missing operator before ?)␤Can't find string terminator '"' anywhere before EOF at (eval 118) line 1.␤ at (eval 117) line 3␤ at ./elf_f line 3861␤]
TimToady Obsolete use of $" variable; in Perl 6 please use .join() method instead at line 1: 14:38
------> "$" ";"
pmurias TimToady: eval_perl5 evals perl5 14:40
masak TimToady: I'm sure rakudo was about to say that right before it hung
TimToady yes, I was just telling you what STD says
only the "$" comes out green and the ";" comes out red
I suppose within double quotes $" could give a different error 14:42
surprisingly easy to arrange these days :)
Now says "Can't use a $ in the last position of a string at line 1: 14:48
pmurias TimToady: do i have to switch on anything to get the colors? (or do i have to hack them in myself ;)
pmurias sorry, didn't svn up;make 14:50
TimToady should just work if you have ANSI::Color 14:51
pugs_svn r21395 | lwall++ | [STD] more tweaks, catch final $" 14:52
masak TimToady++ 14:53
pmurias ththe obsolete thing being green is arguably wrong ;) 14:54
* the
TimToady the part it thought it parsed is green
but yeah, could fix that... 14:55
pmurias i can do it ;)
TimToady or maybe I should set it up so we can highlight something in the middle with yellow 14:56
'course, I've picked the worst colors for anyone who is RG colorblind... 14:59
well, I should really be getting subscript declarations to parse, or maybe heredocs 15:03
I was originally just going to parse a subscript declaration as a subscript, but last night I ran into: 15:05
Failed to parse a required term at line 270:
------> my @arr[-->Num] = <1 2.1 3.2>;
and -->Num isn't a normal lvalue :(
*rvalue
well, probably want a special rule for it anyway, since subscript declation is a rather restricted language 15:06
cjfields rakudo: my sub foo() {} 15:37
p6eval rakudo 29608: OUTPUT[Null PMC access in type()␤current instr.: 'parrot;Perl6;Grammar;Actions;scope_declarator' pc 114555 (src/gen_actions.pir:6310)␤]
pugs_svn r21396 | lwall++ | [STD] infrastructure needed by heredocs 17:08
pugs_svn r21397 | lwall++ | [STD] correctly parse 'multi f() {}' when there's no trailing newline 18:38
pmurias TimToady: is there a TODO list for STD, or do you fix bugs as soon as you find them? 19:11
rindolf Hi all. 19:23
TimToady: here?
pmurias rindolf: hi 19:25
rindolf pmurias: hi.
pmurias: I got a killer idea for a website today, but it has a technical problem. 19:26
pmurias what is your idea? 19:26
rindolf pmurias: a site for collectively working on subtitle for videos in YT/Metacafe/etc.
pmurias rindolf: do you know anybody who works on subtitles? 19:27
rindolf pmurias: for movies, etc.? 19:28
pmurias: I worked on transcribing talks and audiocasts.
I transcribed TimToady's "Present Continuous - Future Perfect" talk.
After he gave it on OSDC::Israel::2006 19:29
pmurias why?
rindolf pmurias: well, we initiated this transcription on request of a deaf FOSS activist.
We collaborated on a wiki.
pmurias i see
and for movies?
rindolf wiki.osdc.org.il/index.php/Larry_Wa...re_Perfect 19:30
lambdabot Title: Larry Wall - Present Continuous, Future Perfect - Perl, tinyurl.com/5cqzz3
rindolf pmurias: no, not for movies, yet.
pmurias: most FOSS-related movies have awful quality.
Like videos of talks.
pmurias: enjoy! ^^^ It's great , as most things TimToady
pmurias what's you technical problem?
rindolf pmurias: well, the ##freebsd guy argued that the subtitle will be very small. 19:31
subtitles.
I was told of a tool to add subtitles to Flash videos though.
I'll see. 19:32
pmurias re Larry's presentation thanks, i'm *listning* to it now 19:34
rindolf pmurias: ah. 19:42
pmurias: OK.
pmurias: I prefer reading.
pmurias: normally.
pmurias: but you're welcome.
pmurias: we use.perl.org'ed it.
Back at 2006.
pmurias i don't like to read from computer screens 19:43
rindolf Ah. 19:44
I'm writing a "FOSS Licences Wars" article now.
pmurias dosn't sound usefull 19:45
rindolf pmurias: it's not.
pmurias: but it's something I need to get out of my system. 19:46
pmurias: are you using the X11L for all your software?
pmurias i don't really know 19:47
i just put my open source stuff in the pugs repo
rindolf pmurias: you just commit it.
pmurias: ah. 19:48
pmurias: well, I think the Pugs core is X11L.
Or at least that's what Audreyt wanted.
But the Perl 6 code is Artistic.
pmurias: maybe I should work on code instead. 19:49
pmurias ye
s
rindolf My homepage and Google are neutralised for a few hours.
pmurias i mostly worked on other peoples stuff, so it's what they prefere
rindolf I can work on my Solitaire verifier.
Ah.
pmurias: you can disclaim ownership.
I have a lot of original FOSS code.
pmurias why?
rindolf Projects I started from scratch.
pmurias: so they (or whoever) won't have to consult you when re-licensing. 19:50
pmurias if the people i'm working with deside to GPL stuff i'll do it with my code too 19:51
rindolf pmurias: ah.
rindolf pmurias: but then if they decide to make it LGPL (or whatever), then they'll have to ask you. 19:51
pmurias it's not to much to them 19:52
s/to/for/
rindolf pmurias: yes, but if you have 1000's of contributors like the Linux kernel does, and they want to convert to a different licence, you got a mess. 19:53
pmurias * it's not very much effort for them
rindolf Mozilla tried it.
pmurias it's possible to convert from X11 to anything, and converting from GPL is a thing is should agree to 19:55
rindolf pmurias: right.
pmurias: that's why I like the X11L. 19:56
Also converting from GPL-v2-only to GPL-v2-and-above or GPL-v3-only.
pmurias GPL-v2-only is not a very good choice 19:57
but i generally agree with FSF on non-technical matters 19:58
rindolf pmurias: ah. 20:02
pmurias: GPL-v2 is Linux kernel.
And Ghostscript.
And stuff.
That's why they started GNU PDF.
Which is GPLv3+
rindolf is going to start bsdl-violations.org 20:03
or x11l-violations.org
rindolf is writing some code. 20:04
Fist! The tests!
And noo - de Moose!
Actually I'm not using Moose.
I'm using C::A.
Class::Accessor.
But now I have to write the code to pass the tests.
pmurias you're talking about your Solitare verifier? 20:06
rindolf pmurias: yes. 20:07
I'm not adding Baker's Game support.
Only have Freecell now.
pmurias has an *extremely* low opinion of solitare 20:10
pugs_svn r21398 | putter++ | misc/elf/planning/: Created. With a dependency graph sketch. 20:26
pmurias wonders if it's an abuse of subversion to use it to msg people ;) 20:28
rindolf pmurias: are you Putter?
pmurias: have you ever played Freecell?
pmurias: Solitaire is more than Klondike you know.
pmurias rindolf: i'm pmurias, mncharity is putter 20:30
rindolf pmurias: ah. 20:31
pmurias: so - Solitaire is a large collection of one-player French card games.
pmurias rindolf: i would even consider installing solitare
* wouldn't
rindolf pmurias: and Freecell and related variants have been the object of a lot of research. 20:32
Solving Freecell was shown to be NP-complete.
pmurias: You mean something like PySolFC?
pmurias i mean i wouldn't want to play any sort of a card game 20:33
rindolf pmurias: not even Poker?
pmurias no
rindolf pmurias: which kind of games do you like?
pmurias: computer or otherwise. 20:34
pmurias starcraft, glest
real style strategies 20:35
pmurias * real time strategies 20:36
;)
i enjoy various board games like settlers of ctan, risk
rindolf pmurias: ah. 20:39
pmurias: I like WarCraft 2.
pmurias: finished it.
pmurias: and I also like WC 3, but it's too damn long.
I had to start again.
pmurias: ah.
pmurias: don't you like puzzle games?
pmurias like sudoku? 20:40
rindolf pmurias: maybe you'll enjoy Nurikabe.
perlbot: nurikabe
pmurias i hate sudoku
rindolf pmurias: Sudoku, Sokoban, Nurikabe.
Kakuro
They're all different.
pmurias: I hate sudoku too.
pmurias doing math exercises is much more enjoyable than sudoku 20:41
pugs_svn r21399 | lwall++ | [STD] get heredoc method back to parseable 20:43
rindolf pmurias: I guess. 20:55
pmurias: more challenging too.
pmurias: I like math exercises.
pmurias: but some of the math riddles are positively difficult.
orphean i don't see the point of sudoku. you just churn through an algorithm to fill it out.
its like having fun making logarithm charts by hand :(
rindolf And in the Technion my friend and I used to sit for days on end on some of our assiggments.
Solving two questions a day. 20:56
orphean: a computer can solve Sudoku.
A few ISrael.pm'ers wrote a Sudoko solver.
orphean that's my point exactly
rindolf One wrote it in JS.
But a computer can solve Freecell too usually, but it's still fun.
Because a computer just DFSes through the states' graph. 20:57
orphean yeah but that's just the computer brute forcing the game in essence 20:58
rindolf orphean: yeah.
orphean sudoku is, in a sense, more trivial since there's a well formed algorithm in place that a human can follow just as well (albeit slower)
rindolf orphean: yeah. 21:00
As the numbre of columns expands Sudoku become NP-complete.
rindolf orphean: I think Nurikabe would be harder to write a solver for. 21:09
rindolf orphean: en.wikipedia.org/wiki/Nurikabe 21:13
lambdabot Title: Nurikabe - Wikipedia, the free encyclopedia
rindolf orphean: thing is - this spatial deduction is easy for a human with some practice, but it's insanely complex to implement in a computer's program. 21:14
orphean hm that's interesting 21:15
rindolf I had some ideas for how to write a Nurikabe solver, but I neglected to start working on it. 21:16
wanted to write it in CL. 21:17
orphean CL seems like a logical choice
rindolf Partly because it can be compiled and because Perl may be much slower.
orphean: C is much more suitable than CL for Freecell, though.
And someone wrote a Freecell solver in x86 Assembly.
For DOS.
Using his own Macro assembler written in itself. 21:18
orphean I guess its true that some people have a lot of free time on their hands
rindolf Which originated from 8080 and CP/M or something like that.
It's only 15 KB.
orphean: that's nothing in comparison to libavl2.
It's a 600 pages book about balanced binary trees. 21:19
rindolf www.stanford.edu/~blp/avl/ 21:19
lambdabot Title: Ben Pfaff: GNU libavl
rindolf He's a graduate student BTW.
In Stanford. 21:20
orphean one can get the fact its about balanced binary trees from the name alone i would hope
rindolf He knows Knuth.
rindolf orphean: yes. 21:32
orphean: well, it also does many RedBlack stuff.
It's a literate programming using Texinfo. 21:33
I compiled it into a PDF several times.
Just for the heck of it.
rindolf www.stanford.edu/~blp/avl/libavl.html/ - hmmm.... 21:34
lambdabot Title: GNU libavl 2.0.2
pmurias rindolf: why do you mention libavl? 21:55
rindolf pmurias: because orphean said some people have too much time on their hands.
pmurias has lots of free time now 21:56
rindolf pmurias: then re-implement libavl2 as X11Led code. 21:57
;-)
pmurias what is it licence now?
rindolf It's GPLed.
pmurias didn't i tell you i prefer GPL? 21:58
rindolf pmurias: ah.
pmurias ;)
and reimplementing and open source thing is very demotivating 22:00
s/and/an/
rindolf pmurias: yeah, I get you.
But tell it to Ovid and ANDYA.
They re-implemented Test::Harness. 22:01
pmurias \
rindolf While I slaved on refactoring/revamping it as Test::Run.
pmurias g'night 22:05
rindolf orphean: here? 22:10