»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by Juerd on 28 August 2009.
asciiville tene: The original issue was when passing Pointer PMCs vi Parrot NCI to libsqlite3. It appears that libsqlite3 was stepping on the pointer itself when trying to get either a database or statement handle. 00:57
Tene asciiville: what libsqlite functions stomped like that? 00:58
asciiville open, prepare
Tene Huh.
They seem to work fine for me.
asciiville out of the box?
Tene Yes.
asciiville from the Parrot source tree? 00:59
Tene Yes. 00:59
asciiville I'm bewildered then. :) 01:00
Tene I had to change the namespace of src/SQLite3/SQLite3.pir, but I can use it fine from rakudo now.
I'm investigating a problem when trying to bind_text, though.
asciiville I think I found that one. SQLITE_TRANSIENT instead of SQLITE_STATIC
lisppaste3 tene pasted "Use SQLite3 from Rakudo" at paste.lisp.org/display/86684 01:01
asciiville Ah. "SQLite3" for the namespace instead of "SQLite"? 01:02
Tene Yes.
The filename needs to match the namespace to be loaded from any other HLL.
asciiville That is awesome. 01:03
Tene Can you test it in ext/SQLite3/ on an up-to-date parrot for me?
asciiville Let me try.
Tene I need to add several more functions to that library and move it to runtime/parrot/library/ so that it gets installed... 01:04
asciiville Cool. Then I can pull stuff off github that I've been working on... :)
asciiville tene: it worked after I changed the namespace in SQLite3.pir. I wasn't familiar with the use SQLite3:from<parrot>; notation. 01:13
Tene asciiville: That actually works for any parrot-hosted language (that supports library loading), so you can use Foo:from<cardinal>, for example. 01:15
Tene The fact that it works without the :from<parrot> is kind of an accident, and not to be relied on. 01:15
asciiville tene: an easter egg then? 01:16
Tene Kinda.
asciiville ":from<parrot>" is my new friend 01:19
TimToady ruoso: yes, nextsame et al. are supposed to be handled by exception, and as usual, this might be optimized away in specific cases 02:14
but you'll note that the original formulation of that concept was "next METHOD", and next is certainly exception based 02:15
moritz_: yada is supposed to work in class defs, which is probably a good argument for executing class bodies at composition time 02:17
ruoso TimToady, thanks... that clarifies a lot... which means nextsame is a simple function that works the same way in methods or routines... and the dispatcher is the one responsible for doing the right thing 02:18
TimToady and there can be a methodical form that specifies the scope to 'next', though that's unspecced 02:21
ruoso TimToady, the other question was if we have a special variable containing the capture sent to the current invocation 02:23
TimToady frettled: your Camelia is kinda 1st-gen, and points to perl6-projects.org 02:24
ruoso or if that should be resolved by the dispatcher internally
TimToady I'm inclined to think that it would be inefficient to mandate such a variable 02:24
a given dispatcher can always choose to make more info available 02:25
but part of the reason for special nextsame verbs was to hide the actual mechanism, instead of assuming a particular loop label, for instance 02:26
ruoso TimToady, right.. I think the dispatcher has means of doing it anyway 02:32
it would only be really necessary to have such variable if nextsame wasn't implemented in terms of exceptinos 02:33
TimToady exceptinos are the supersymmetric partners of exceptions, I suppose
ruoso they are probably related to neutrinos... or maybe centrinos... 02:34
Tene lambdabot: msg masak update parrot and then look at gist.github.com/182167 05:53
@msg masak update parrot and then look at gist.github.com/182167
I hope that worked... 05:54
moritz_ phenny, tell masak 07:53 < Tene> @msg masak update parrot and then look at gist.github.com/182167 06:20
phenny moritz_: I'll pass that on when masak is around.
pugs_svn r28196 | moritz++ | [S12] spec behaviour of stubbed classes 06:48
r28196 |
r28196 | This is a bit more general than what I had in mind first. If the implementors
r28196 | say this is too hard to do it this way, we can degrade it to allow only a single
r28196 | '...' term in the body of a stubbed class.
Tene oh, we have a phenny! 06:54
I forgot!
moritz_ phenny++ 06:55
Tene .ie phenny++ 06:58
hey wait a sec... masak said he'd be here like an hour ago! Where is he? 06:59
phenny: summon masak 07:07
frettled TimToady: whoops, thank you, will rectify. 07:25
moritz_ rakudo: say (* * *).(3) 08:05
p6eval rakudo 09b954: OUTPUT«9␤»
moritz_ rakudo: say <a b>.perl # with non-breaking spaces
p6eval rakudo 09b954: OUTPUT«["a", "b"]␤» 08:06
moritz_ phenny: tell masak past weekend I stumbled upon the SVG.pm "feature" that arrays are ignored where a tag is expected, ie svg => [ [ $stuff ] ] ignores $stuff 08:10
phenny moritz_: I'll pass that on when masak is around.
moritz_ phenny: tell masak a general solution might be to flatten the array in-place. An SVG specific solution to replace it automatically with a <g>...</g> element, which is generic grouping in SVG 08:11
phenny moritz_: I'll pass that on when masak is around.
kent\n ack. where is the rakudo channel? 08:32
kent\n has looked on magnet/freenode and not found it
Matt-W This is the channel where we discuss Rakudo 08:33
Matt-W and other Perl 6 related things 08:33
kent\n as in, the distribution / compilation of rakudo itself?
moritz_ kent\n: all aspects of rakudo development and usage
kent\n awesome.
I'm trying to write a rakudo, build for gentoo, against an existing parrot, but when I pass it --parrot-config=/usr/bin/parrot_config its complaining its 'r0' 08:34
even though its not.
kent\n ( parrot is also build from latest svn ) 08:35
kent\n I'm assuming I'm use using it wrong, but I cant see how 08:36
( edocumentationlacking )
moritz_ kent\n: what does '/usr/bin/parrot_config revision' say?
kent\n 0 :/
so I guess rakudo's not lying 08:37
moritz_ aye :-)
kent\n just parrot_config doesn't know what r'v it is
moritz_ in the build tree of parrot, what happens when you run ./parrot_config revision?
kent\n I'll have to check, ( build tree is rm'd after installation )
moritz_ if I can't help you, there's also #parrot on the irc.perl.org network 08:39
kent\n yeah, noted, will be asking them :) 08:40
kent\n had just thought it was more rakudo related and was wrong :)
moritz_ well, it was a good start
and there is a good deal of overlap between here and #parrot 08:41
kent\n still isnt entirely sure why parrot dumps droppings into /usr/src but you cant make everyone happy 08:42
kent\n thinks he sees the problem though 08:43
when its building parrot there is no longer a .svn dir, and I guess it kinda needs that to work out the rv 08:44
kent\n screw it, I'll just tell it not to exclude .svn in the rsync. less difficult. ;P 09:03
moritz_ :-)
masak olá, camelionauts. 09:04
phenny masak: 06 Sep 22:32Z <mberends> tell masak web-druid runs ok on Linux but web/make.log says "no rule to make target 'lib/Handler/HTTPDaemon.pir'": there is no Handler directory
masak: 06:20Z <moritz_> tell masak 07:53 < Tene> @msg masak update parrot and then look at gist.github.com/182167
masak: 08:10Z <moritz_> tell masak past weekend I stumbled upon the SVG.pm "feature" that arrays are ignored where a tag is expected, ie svg => [ [ $stuff ] ] ignores $stuff
masak: 08:11Z <moritz_> tell masak a general solution might be to flatten the array in-place. An SVG specific solution to replace it automatically with a <g>...</g> element, which is generic grouping in SVG
masak feels sought after
moritz_ kent\n: you can also put the revision number into the .parrot_current_rev on the server, and rsync that to the client 09:05
svn info | grep ^Revision: | cut -d ' ' -f 2 > .parrot_current_rev 09:06
kent\n its not really client server, its just how gentoo buildsystem works, the "source fetch" phase mirrors upstream into $DIR1, and then the contents of $DIR1 are copied over to $BUILDDIR during "source prepare"
its generally fine, and makes things nice and atomic, but just in this case its a bit of a burn 09:07
masak phenny: tell mberends fixed, thanks. strange that the bug is not reproduced, though. I might have to to a full reinstall of those modules.
phenny masak: I'll pass that on when mberends is around.
masak moritz_: apart from not seeing how the <g>...</g> idea would work in practice, it sounds like a neat opportunity for some syntactic sugar. 09:08
moritz_ masak: I on the other hand don't see what the problem is, but I haven't tried to implement it yet 09:11
masak moritz_: another, perhaps shorter-term solution would be to simply disallow arrays of arrays. 09:12
masak something I've been mulling over now and then... in Perl 5, I can process files line-by-line using the /FROM_HERE/.../TO_HERE/ pattern. it works well with the -ne flags, for example. 09:28
moritz_ I think that's done with ff in Perl 6 09:29
masak yes, but ff is woefully underspecced.
and I doubt it does the trick with $. which Perl 5 does.
Matt-W Well, you'll just have to spec it :)
masak that's what I wanted to talk about.
Matt-W Well there's no $. in Perl 6, so... 09:30
masak Matt-W: it's spelled $*IN.ins
frettled moritz_: tsk tsk, not using perl for that svn info thingy! What were you thinking? :D 09:31
moritz_ of bootstrapping :-)
frettled masak: I think krunen is thinking about a proposal for generalized tree handling in Perl 6, that might make things easier, too. 09:32
masak frettled: sorry, I don't see the connection.
frettled masak: since essentially all XML is a tree form, you'd get generalized tree handling routines instead of having to roll your own, might reduce code. It's not _directly_ related to your problem, just thought it was worth mentioning. (Also to get krunen started, muahaha.) 09:33
masak I wish krunen luck. wayland has been thinking along these lines, too. 09:34
I wouldn't mind a good library to manage trees in Perl 6, but I honestly don't think it belongs in core. 09:35
Matt-W I want to see it before I decide that :)
Juerd I remember the time when TimToady wasn't on IRC and now he even uses Twitter! :)
frettled I'm not sure that it's intended to be in the core.
masak frettled: ah. wayland did, I think.
frettled Is the distinction between «core» and «modules distributed with the core» meaningful in this regard, BTW? 09:38
Juerd For Perl5 I once suggested that there be "core" and "standard" 09:39
frettled Mm. 09:41
The core would contain core _language_ features, and the standard lib would contain additional, modular functionality?
Juerd Yes
frettled With Perl 6, this may make even more sense. 09:42
Core language features could be implementation dependent code. Standard library features would be coded in Perl 6.
Juerd In p5, strict.pm would be a core module, CGI.pm would be called standard. 09:43
frettled So, in essence, things would be tidier in the bike shed if all the hand-held tools hung on the wall. 09:44
Juerd I've never bothered to write a precise definition, though
I'm not so good at real world metaphors for programming :)
frettled I managed to stay serious for more than 12 minutes, I needed a break. ;)
frettled Juerd: see also en.wiktionary.org/wiki/bikeshedding :) 09:45
Juerd I know what bikeshedding is 09:46
masak imagines that page being full of opinions about how the word should be defined
frettled hee-hee 09:46
Juerd Just can't see how you would need tools to do that :)
frettled aha
frettled was probably too obscure, again. 09:47
But look over there, isn't that a diversion?!
frettled lunches.
carlin top of the bikeshedding article: "Vote on a logo for Wiktionary"
masak uh oh. 09:48
carlin Wonder if they have any butterflies we can vote for ... 09:49
Juerd Wictionary... isn't that the game where you have to draw something and people have to recognise the policy? 09:50
Juerd s/c/k/ 09:50
carlin I can't immagine Wiktionary's policies being anywhere near as bad as Wikipedia's 09:51
Juerd bikeshedding[citation needed] 09:53
{{NPOV}}
carlin Some people[who?] claim[citation needed] that bikeshedding[jargon] ... 09:54
Juerd :)
masak lunch & 09:57
carlin there's a few [citation needed]s in the Perl 6 article
frettled Ooh. 09:59
mikehh forgot to post this here - rakudo (205733f) builds on parrot r41105 - make test / make spectest (up to r28196) PASS - Ubuntu 9.04 amd64 (g++) 10:21
cognominal is STD an acronym? besides being the STandDard Perl 6 grammar? 10:33
moritz_ I'm looking at the wikipedia article on Perl 6
the example about macros look wrong to me
no need for {{{ ... }}} unless you're inside a quasi... oh, we are. never mind. 10:34
carlin rakudo: my @a = < ♣ ♢ >; say @a.splice(0, 1).perl; 10:39
p6eval rakudo 09b954: OUTPUT«["♣"]␤»
carlin it outputs gibberish from the CLI from a file I'm getting "no ICU lib loaded" 10:40
s/from/but from/
moritz_ carlin: the REPL is known to have lots of troubles with Unicode 10:41
so you need to install libicu before configuring parrot
carlin ah, now it works. Thanks moritz_ 10:51
moritz_ github.com/languages/Perl Rakudo is the "most watched" and "most forked" perl project overall 11:47
frettled nice 11:48
masak it's working! Tene++ \o/ !!! 11:55
masak so, people. time to dig down and write a Perl 6 web app with a database backend. 11:55
masak what do we do first? Druid? a simple weblog? something entirely different? 11:56
this is big, I tell you. a new landscape opening up.
moritz_ a DB backend for Novemeber? 11:58
masak yes, that too.
November already has a bit of infrastructure, so I envision a kind of ORM-like thing being better for it than just directly fiddling with SQL. 11:59
mst suggested Sequel as a good role model for that: sequel.rubyforge.org/ 12:00
masak but I was looking for something which makes a bit of a splash. Druid or a blog engine would do that, I think. 12:02
masak phenny: tell Tene um, it's kinda crippling that one has to sit in the same directory as SQLite3.pir... any plans to change that? 12:26
phenny masak: I'll pass that on when Tene is around.
masak in the meantime, I think I'll peruse the Sequel source. 12:27
frettled That's very IBM-ish of you. :D 12:28
masak what is? perusing? 12:28
frettled «Sequel» :D 12:29
masak do elaborate.
frettled See the «History» section for SQL in Wikipedia, it should be very early.
moritz_ isn't 'sequel' how some people pronounce SQL? 12:30
frettled Yes.
«SQL» was coined as a term/initial abbreviation because of patents or something.
«It's pronounced «sequel»! No, «ess-cue-el»!» - one of the great flame wars of the nineties. Oh, the humanity. :D 12:32
Matt-W not always
I've met people who say 'sequel' (rare), 'ess cue el' (common) and 'squirrel' (very rare)
masak squirrel! 12:33
very rare -- I should bloody well hope so!
moritz_ squirrels++
hanekomu I say "ess cue el" if I want to be picky, but normally "sequel" is much easier. For example, "ess cue el server" is a mouthful, but "sequel server" just flows.
not that i recommend that particular product, of course
carlin I think people would look at them funny whe nthey start talking about "my squirrel"
kent\n "im going to install my squirrel" 12:34
frettled Or «mysqueal»
kent\n "riiiiigh"
Patterner I use "SubeQuaL"
hanekomu "and I could see the squirrels, and they were merry…"
kent\n postgresquirrel
masak actually, the 'y' in MySQL, it could be argued, should be pronounced in the way only us Swedes can successfully pronounce it -- since MySQL was originally a Swedish enterprise. 12:35
huf this isnt a rare occurrence tho, think about libc functions or c types
is there a standard way of saying "char"?
frettled yes, at least two.
huf ;)
hanekomu :)
moritz_ oh, and there's the possible confusion with "squirrelmail"
hanekomu the "jar" way of saying it encourages bad habits though
kent\n the one that sounds like an automotive vehicle I'd argue is the wrong one 12:36
masak chARRR! btw, TLaPD is coming up.
hanekomu people here (in Austria) often (always?) say "arjive" when they mean "archive". makes me cringe everytime.
huf and then add to this mix coders whose first language isnt english... you get query pronounced as qw-ayer-ee
hanekomu a bit like "two times", when they mean "twice"
kent\n hanekomu: wht? you're joking ? 12:37
Arjive?!?
hanekomu well, English isn't our native language, so when they see "archive", they think of "arch-enemy" and such
frettled kent\n: it could be worse, it could be a Flemish-speaker with a very bad accent.
kent\n it could be worse, it could be a german, with a cold.
kent\n is somewhat a bit of both at present 12:38
masak reads README.pod in github.com/jeremyevans/sequel/ ... liking Sequel already...
huf hanekomu: i've heard at least "kar", "char" and "ts-har with a hard h" 12:38
kent\n every time people say "sequel" the initail thought is "the sequel to what exactly?" 12:39
masak I propose we standardize the pronunciation of 'char' to "Krakken!".
hanekomu huf: in german? because i can't imagine an English speaker saying "ts-har", and it don't know what the different in English between "kar" and "char" is anyway
huf hanekomu: hungarian, so pronounced with the hungarian ortography ;) 12:40
hanekomu other differences: whatever they call #, !, @, *
huf hanekomu: well, one is with a k and the other with the ch in chair and words like that 12:40
kent\n # <-- hash
not sharp
hanekomu should be "hash, bang, at, star," right
frettled octothorpe
kent\n thats a different character
hanekomu i've heard octothorpe for # (well, "raute" is what some people call in German) 12:41
kent\n ♯ <-- ;)
hanekomu no one here says "bang", always "rufzeichen" = "exclamation mark"
kent\n C♯ is "C-Sharp" , C# is "C-Hash" , imho.
s/h// 12:42
hanekomu but for "@" some people say (not so much anymore since email addresses became ubiquitous) "klammeraffe" = "spider monkey"
go figure
huf here it's "worm"
kent\n whut 12:43
frettled kanelbulle
dog turd
carlin so there isn't one you can't bikeshed over the name of?
huf ;)
frettled carlin: of course not
we are geeks. 12:44
masak snabel-a "(elephant's) trunk A"
kent\n ~ <-- what about that?
frettled alfakrøll/krøllalfa (alpha, curled/curly alpha)
tilde, squiggle, …
hanekomu on a related note, I love the norwegian word for "cache": "hurtigbuffer" because "hurtig" is a quaint, almost childlike way of saying "fast" in german
kent\n "squiggle" is not a legitamate name imo
too ambiguous
{ could be squiggle 12:45
& could be squiggle
~ is imo, only tilda
tilde*
what about '=' ? 12:46
carlin wave
kent\n this explains why they use greek letters for everything -_- 12:50
frettled –­- 12:51
masak I kinda like the example code on sequel.rubyforge.org/ -- I think a good first step would be to translate it to Perl 6 and make it run. 12:57
ruoso watching the google tech talk on the natural programming project 12:59
frettled masak: That example code reminds me of one of the pet peeves about many database scripting frameworks (I'm not saying that it's true of this Ruby framework): they focus too much on table creation and too little on data extraction, to the extent that it becomes unclear how to best extract data. 13:03
masak frettled: oh, then you should go read the README.pod immediately.
I did, and I was happily surprised.
(to the point that I now wonder "how the heck am I supposed to implement that?") 13:04
it would seem that it uses chained method calls, and somehow creates the SQL query lazily when needed.
so 13:05
DB[:countries].filter(:region => 'Middle East').reverse_order(:area).limit(5).avg(:GDP)
becomes
SELECT avg(GDP) FROM countries WHERE region = 'Middle East' ORDER BY area DESC LIMIT 5
that's not "focusing too little on data extraction" in my book. :) 13:06
frettled yes, it is.
(in my book) 13:07
masak then you have different demands on such a layer than I currently have.
frettled Compare the example for creating a table as a class with, er, the missing similar example for accessing the table as a class.
masak I see a few examples of accessing the table as a class. 13:09
frettled Yes, but in order to grasp how to handle the table as a class, you need to read almost all the documentation, while table creation is extremely simple. 13:10
However, table creation is a rare event; table access is frequent.
masak if that's your strongest complaint about the framework, I think they're onto something. :) 13:11
frettled no, that's the immediately obvious complaint regarding the _documentation_ of the framework.
masak frettled: I'm sure they'd be happy to receive suggestions. 13:12
frettled I'm not a Ruby programmer, so I haven't used this framework.
masak: I'd much rather be involved in how this is solved for a new Perl-ish database framework. :D
masak help willingly accepted. :)
frettled :)
cognominal rakudo : say (class { has $.a }).new.^attributes[0].^methods >>~>> ', ' 13:24
rakudo: say (class { has $.a }).new.^attributes[0].^methods >>~>> ', '
p6eval rakudo 09b954: OUTPUT«accessor, readonly, build, rw, name, type, ceiling, p5chomp, 1, pairs, 1, 1, comb, unpolar, ord, chop, 1, 1, roots, uc, reverse, keys, isa, ucfirst, 1, cos, fmt, bytes, pick, 1, join, trim, chr, floor, rand, 1, 1, round, 1, 1, split, 1, grep, words, values, can, lcfirst, 1,
..srand, …
cognominal rakudo: say (class { has $.a }).new.^attributes[0].^methods
p6eval rakudo 09b954:
..OUTPUT«readonlybuildrwnametypeaccessorroundchopsplitmatchwordscanlcfirstucsrandComplexkeysmappolarcislogsubstrminmaxpickfirstevalfiletranssinIntjoinsubstabselemsendchompindexceilingtrimp5chomppairsunpolarordrandtruncatesortsqrtrindexintgrepvaluescharsrootsreverseisaucfirstkvsamecasecoscap…
cognominal where the 1 are commong from? 13:25
frettled rakudo: say (class { has $.a }).new.^attributes[0].^methods.perl
p6eval rakudo 09b954: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ...
..}, { …
JimmyZ rakudo: ( * * * * * * * / * % * * * - * - * + * * * * * * * * * )(25).say; 13:27
p6eval rakudo 09b954: OUTPUT«9765575␤»
cognominal it seems they are from the methods specific to attributes 13:28
frettled hmm
cognominal nope
frettled Later in the sequence I get: 13:30
Array, , hash, Iterator, new, print, say, WALK, defined, Str, bless, WHENCE, WHERE, eigenstates, , true, Hash
and a bit earlier:
join, 2, 1, 1, 1, end, 1, ceiling, trim, p5chomp
masak it's just the methods on Any, no? 13:32
cognominal how to do symetric difference on the keys of hash 13:33
masak cognominal: like this: 13:37
rakudo: my %a = foo => 1, bar => 2; my %b = bar => 3, baz => 4; my @sym-diff = grep { %a.exists($_) xor %b.exists($_) }, %a.keys, %b.keys; say @sym-diff.perl
p6eval rakudo 09b954: OUTPUT«["foo", "baz"]␤»
masak voila, a legitimate use of 'xor'. :)
cognominal no way to golf that? 13:42
masak cognominal: define an operator? 13:43
rakudo: my %a = foo => 1, bar => 2; my %b = bar => 3, baz => 4; say (%a.keys.grep({%b.exists($_)}), %b.keys.grep({%a.exists($_)})).perl 13:46
p6eval rakudo 09b954: ( no output )
masak that works too. but not as elegant, if you ask me.
cognominal indeed
masak bit of a structural repetition.
jnthn lolitsmasak
:-)
masak jnthn! \o/ 13:47
jnthn oh hai...oh gozimas.
masak jnthn: so, when's the nearest Rakudo Day?
jnthn ouch :-)
frettled hihi
masak or are you strictly on vacation? 13:48
frettled masak: perhaps we should start requesting Rakudo Week and Rakudo Month!
masak April will be Rakudo month, I think. :)
cognominal say (class { has $.a }).new.^attributes[*].^methods.sort()
rakudo: say (class { has $.a }).new.^attributes[*].^methods.sort()
jnthn Strictly as in, I'll happily check in on #perl6, may even make the odd commit, but I don't expect I'll make a straight day of hacking time.
p6eval rakudo 09b954: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in Main (/tmp/4AccdZOLAN:2)␤»
jnthn Provided the grant gets the go-ahead though, I'll be back with a vengence in October. :-) 13:49
masak sounds like a plan.
cognominal I can't way for full signatures :)
jnthn I usually spend a month in autumn wandering around somewhere. Last year it was Russia. 13:50
Was kinda funny flying here, watching on the map and seeing all the places dotted along the trans-sib than I'd been do...apart from the distance between them flying was an hour, rather than a day on the train. ;-)
s/than/that/
cognominal jnthn, have fun in japan 13:51
jnthn cognominal: Thanks, it's not hard to. ;-) 13:51
Tokyo is a pretty cool city. Discovered the bay area today. Really nice area to relax and walk by the sa. 13:52
*sea
jnthn masak: Were you asking about Rakudo day because there was a specific thingy needing attention, btw? 13:54
masak: If so, I can surely squeeze in some hacking time during YAPC::Asia. 13:55
cognominal hum, is it possible to hyperoperate on a method? like : 13:56
rakudo ( 0, 1 ) >> .WHAT
rakudo: ( 0, 1 ) >> .WHAT
p6eval rakudo 09b954: OUTPUT«Confused at line 2, near ">> .WHAT"␤in Main (src/gen_setting.pm:3469)␤»
jnthn yes 13:57
though .WHAT is a macro so bad example. ;-)
rakudo: (-1, -2, -3)>>.abs.perl.say
p6eval rakudo 09b954: OUTPUT«[1, 2, 3]␤» 13:58
cognominal hum, what about the failing sort? 14:03
jnthn
.oO( fail sort wasn't in Knuth's algo book )
14:04
cognominal: Failing sort?
oh, I see it
heh
I'm not sure what trying to sort objects generally means. 14:05
pmurias OT: what's a good large font supporting terminal?
Matt-W for?
jnthn say (class { has $.a }).new.^attributes[*].^methods.sort(*.name) 14:06
rakudo: say (class { has $.a }).new.^attributes[*].^methods.sort(*.name)
ruoso pmurias, xterm huge fonts are quite big
p6eval rakudo 09b954:
..OUTPUT«:d:e:fACCEPTSArrayBUILDBUILDALLCREATEComplexHashIntIteratorIteratorPARROTREJECTSScalarScalarStrStrWALKWHENCEWHEREWHICHabsblessbytescancapitalizeceilingcharschompchopchrcisclonecombcosdefineddoeseigenstateselemselemsendevalfilefirstflipfloorfmtfmtgrephashindexintisaitemitemiteratori…
cognominal say (class { has $.a }).new.^attributes[*].^methods.sort(*.name) >>~>> ', ' 14:08
rakudo: say (class { has $.a }).new.^attributes[*].^methods.sort(*.name) >>~>> ', '
p6eval rakudo 09b954: OUTPUT«, , 1, 1, 1, ACCEPTS, Array, BUILD, BUILDALL, CREATE, 1, Hash, 1, Iterator, Iterator, PARROT, REJECTS, Scalar, Scalar, Str, Str, WALK, WHENCE, WHERE, WHICH, 1, bless, bytes, can, capitalize, ceiling, 1, 1, chop, chr, cis, clone, comb, cos, defined, does, eigenstates, elems, 1,
..end,…
jnthn rakudo: say 3 ~~ 1..10; 14:20
p6eval rakudo 09b954: OUTPUT«1␤»
azawawi moritz_: ping 14:24
phenny azawawi: 30 Aug 18:43Z <moritz_> tell azawawi I installed sbcl on feather
moritz_ azawawi: pong
azawawi moritz_: what files are needed for a minimal rakudo PDX build? 14:25
moritz_ azawawi: bascially all of the rakudo repo, except docs/, README, LICENSE etc. 14:26
maybe you can also leave out tools/
azawawi moritz_: what about the stuff in parrot directory? 14:28
moritz_: or parrot_install i.e. 14:29
moritz_ azawawi: it needs an installed parrot. 14:29
(including install-dev, as documented in the README)
azawawi moritz_: so i tried this... gist.github.com/182392 14:34
moritz_ well, you can easily test if it builds 14:35
azawawi moritz_: thx :) 14:38
moritz_ azawawi: and it makes sense to include Test.pm and lib/Safe.pm
azawawi moritz_: will do... 14:39
moritz_ is there a good reason to strive for such minimalism? 14:40
(also note that it's illegal to distribute such a copy without the LICENSE file) 14:41
avar what people are working on the sbcl bootstrapping now?
moritz_ (iirc)
avar: flavio glock bootstrapped mp6 on sbcl
avar ah 14:42
avar Yeah I read that. I was just wondering because when I last checked he was working on bootstrapping kp6 14:42
pmurias kp6 was bootstraped on p5 but it turned too slow 14:43
moritz_ which is why smop started, no?
pmurias yes 14:44
azawawi moritz_: the idea is include a minimal six in "almost six" strawberry 14:45
moritz_: but i agree with you that minimalism does make sense a lot. I will investigate it keeping most of the stuff... 14:46
moritz_: s/does/does not/ 14:48
masak jnthn: I was asking about Rakudo Day because I like Rakudo Days. :) 14:51
I have no current pressing issue that needs fixing.
pmurias azawawi: what does a PDX build mean? 14:52
moritz_ PDX = code name of last release of Rakudo
TimToady PDX is the Portland release
pmurias ruoso: where should we keep C smopp5 tests?
avar pmurias: Does bootstrapping mp6 help with that? Won't it be as slow as kp6 once it has the same featureset? 14:55
jnthn masak: Ah, cool. :-) 14:56
avar And wasn't the reason it was slow due to it not having any optimization at all and not something to do with the bootstrap process as such?
pmichaud Good morning, #perl6 14:57
masak though I suddenly feel like traversing RT and putting together a list of bugs that absolutely, definitely must be fixed by Q2 2010. 14:57
pmichaud: o/
pmurias avar: the reason kp6 was slow was because it layered an object system on top of perl5
jnthn oh hai pmichaud 14:57
masak: That wouldn't be a bad idea.
TimToady _____________ <- puddle of morning TimToady greets pmichaud++ 14:58
masak so we're seeing the puddle sideways on?
TimToady ___
masak :P 14:59
pmurias avar: lisp is supposed to be much faster then perl5 isn't it?
TimToady lisp is supposed to be much better than every other language in every way
hanekomu ostensibly, yes 15:00
pmichaud lisp is even better than lisp :)
TimToady you can say that again
moritz_ except when you could low number of parenthesis as a plus
carlin xkcd.com/224/
hanekomu xkcd.com/224/
jinx :)
moritz_ you can call that URL a buzzword :-)
pmichaud reads backscroll
hanekomu moritz_: is that like communicating jokes in numbers? 15:01
A: "224" B: erupts in laughter.
TimToady attempts to backlog, wondering if it will take all day as usual
moritz_ would be happy if pmichaud and/or TimToady could review his last S12 change for sanity 15:02
or jnthn, if he's about
TimToady C: "224" <silence>
hanekomu A: "you didn't tell it right"
TimToady D: "some people can tell 'em, and some people can't"
hanekomu :)
hanekomu I'm sure you could work that into one of your talks about shared culture 15:03
carlin C: 224 D: Sorry, net is down
avar pmurias: Yes Common Lisp implementations have C-like speeds. But when I last looked at (and worked on) mp6/kp6 compiler output it had a bunch of things that made it fantastically slow compared to native code that does the same thing
pmurias: You end up loading and compiling 5000 lines of generated code, constructing Str objects and IO stuff just to do the equivalent of (format t "hello world") 15:04
The workaround is an optimizing compiler, but those are hard :)
avar But yes, all other things being equal generating craptastic code in Common Lisp is probably going to be faster than generated Perl code for the same reason that generated C code is faster than generated Perl code. 15:05
jnthn moritz_: Hmm. 15:06
I guess that means a "..." in a class body implies an augment the next time we see the class. 15:07
moritz_ yes
pmichaud would it have to be within the same scope ?
(fsvo "scope") 15:08
TimToady augment must be able to see the existing name 15:08
one of the reasons it's a different declarator, since name search can go outside current scope 15:09
pmichaud class A { has $.x; ... }; module B { class A { has $.y; } }
azawawi TimToady: I noticed a couple of duplicated 'our' variables in STD.pmc. gist.github.com/182405
TimToady well, there's a problem there, I think
std: class A { has $.x; ... }; module B { class A { has $.y; } }
p6eval std 28196: OUTPUT«ok 00:02 37m␤» 15:10
moritz_ pmichaud: wouldn't that declare B::A in the secodn case?
pmichaud moritz_: I'm fine with that, I'm illustrating my question about "scope"
also, since it's exception based, could we end up with...
TimToady seems like it should have conflicted in GLOBAL::A, but I guess the second is GLOBAL::B::A
pmichaud class A { has $.x; { ... } }; class A { has $.y; } 15:11
TimToady std: class A { has $.x; ... }; module B { augment class A { has $.y; } }
p6eval std 28196: OUTPUT«ok 00:02 37m␤»
TimToady in this case we're augmenting the outer class A 15:12
pmichaud also, what happens with something like:
class A { has $.x; ...; has $.y; }; class A { has $.z; } # :-) 15:13
jnthn :-P
TimToady std: class A { has $.x; ...; has $.y; }; class A { has $.z; } # :-)
p6eval std 28196: OUTPUT«===SORRY!===␤Illegal redeclaration of package symbol A at /tmp/OBUoDLint3 line 1:␤------> { has $.x; ...; has $.y; }; class A⏏ { has $.z; } # :-)␤FAILED 00:02 37m␤»
pmichaud hmmm 15:14
that might in itself be an argument against an exception-based model.... a parser can only correctly parse by executing the class blocks
TimToady std: multi class A { has $.x; has $.y; }; multi class A { has $.z; } 15:15
p6eval std 28196: OUTPUT«===SORRY!===␤Malformed block at /tmp/y2RcIGTnOG line 1:␤------> multi class ⏏A { has $.x; has $.y; }; multi class A ␤ expecting any of:␤ block␤ routine_def␤ terminator␤ trait␤FAILED 00:02 37m␤»
jnthn . 15:16
jnthn is tired
sleep time for me
o/ 15:18
TimToady g'night
pmurias avar: if you have a bootstrapped compiler you are forced to keep the speed vaguely decent 15:19
TimToady pmichaud: how the the parse depend on execution?
moritz_ also doesn't see the problem 15:20
TimToady STD parses without execution currently
avar pmurias: just execute and go for tea!
pmichaud (long answer)
moritz_ TDD - tea driven development 15:21
TimToady and I'd argue that the 'class {...}' form means that class bodies shouldn't execute till composition time anyway, maybe
masak I think I can close this one rt.perl.org/rt3/Ticket/Display.html?id=57336
pmichaud in general, we're trying to allow a partial definition of a class
masak does anyone else agree?
TimToady not sure ... is the right tool for partial definition 15:22
pmichaud i.e., we want to be able to do: class A { ... }; class B { #`(code that depends on A being a class) }; class A { #`(full definition of class A) };
TimToady I'd say 'replacement definition of class A' there
pmichaud however, as STD.pm just showed, the second "class A" thinks it's an illegal class redeclaration
and according to what was checked in to S12, the way that the compiler knows that the second class A is not illegal is because the first class A threw an exception 15:23
TimToady STD doesn't handle ... yet
masak doesn't handle what yet? :P
pmichaud from S12:
+If the class body throws an exception from a literal C<...> (yada) term,
+the class defintion is considered incomplete, and a second definition of
+that class does not complain, so you can write
TimToady yes, but I didn't write that part :)
pmichaud right; I'm commenting with respect to moritz++'s commit 15:24
moritz_ pmichaud: I still don't see where the problem is - the first class defintion of A is executed at compile time
pmichaud as written, it would imply (to me) that a parser could only correctly parse by executing the class block to see if the class body throws an exception
moritz_ pmichaud: ie before class B is even parsed
pmichaud that's fine with me
moritz_ pmichaud: it's specced that way anyway
pmichaud moritz_: I'm not complaining about the fact that class A is executed; I know that. 15:25
TimToady we're trying to avoid unnecessary execution at compile time; the necessary execution is bad enough
pmichaud moritz_: my point is simply that this definition makes it difficult for STD to do an accurate parse
TimToady you've basicaly just turned all class defs into BEGIN blocks 15:26
moritz_ TimToady: no, it was like that before
"In either case, the code represented by ... executes at compile time as the body of a method of the metaclass, which is responsible for interpreting the keywords of the class definition."
that's been in there for ages.
TimToady hmm
pmichaud this is correct.... I'd *love* to get rid of that, fwiw
moritz_ and which is what gave me this stupid idea :-)
TimToady yes, that's a very ancient fossil
moritz_ anyway, as I noted in the commit message, I'm fine be de-generalizing my last commit 15:27
pmichaud there was also a discussion at NPW as to whether the body of a class should execute at BEGIN, CHECK, or INIT
moritz_ to just allow class A { ... LIST }
TimToady or COMPOSE
moritz_ and nothing else in there
pmichaud hadn't noticed COMPOSE before :) 15:28
TimToady just naming the time, not proposing a block :)
masak rakudo: my @a; @a[0] := @a 15:29
p6eval rakudo 205733: OUTPUT«rtype not set␤in Main (src/gen_setting.pm:3469)␤»
TimToady we could go so far as to generalize a different direction, and say a statement list ending in a ... statement is appendable to by replacing the ... statement 15:30
pmichaud anyway, moritz's immediate issue is that we'd like to be able to split our settings into separately compiled files, but there are some cross-dependencies whereby we need to be able to tell the compiler e.g. "Rat" is a class without its full definition needing to be available
TimToady well, either we make 'class Rat {...}' work, or we make 'proto class Rat {}' work 15:31
moritz_ right. And one possible solution is stubbing classes, which was IMHO insufficiently specced 15:32
TimToady it needs a parse def though, not involving execution
pmichaud I'm fine with either approach; I was expecting 'class Rat {...}' to be largely syntactic-based and not execution based.
TimToady YACV 15:33
(context var)
((is one approach))
(((doubtless with its own evilness))) 15:34
masak rakudo: grammar A { token ws { 'a' }; rule b {x y}; }; say 'xab' ~~ m/ ^ <a::b> $ /
p6eval rakudo 205733: OUTPUT«Null PMC access in get_string()␤in regex PGE::Grammar::_block59 (/tmp/DOwfZrm1dZ:2)␤called from Main (/tmp/DOwfZrm1dZ:2)␤»
pmichaud A::b, perhaps?
masak heh, a ticket whose phenotype has actually gotten _worse_ since it was created. :P
hm.
the ticket says a::b. 15:35
apparently that's the bug. :)
pmichaud well since there's no grammar named 'a'....
TimToady std: grammar A { token ws { 'a' }; rule b {x y}; }; say 'xab' ~~ m/ ^ <a::b> $ /
p6eval std 28196: OUTPUT«ok 00:03 38m␤»
TimToady hmm
eiro T/wg #soul9
oops sorry
masak eiro: irssi?
eiro and hello world
masak, yes :)
masak eiro: consider switching to one which induces better habits. :P 15:36
those commands doesn't seem nearly out-of-band enough to me.
TimToady or rewriting irssi to have a sane interface :)
eiro masak, i'd love to but i failed finding a decent irc client
moritz_ masak: re RT #57336, I think is OK to close
masak and it's more or less only irssi (and vim) users who inadvertently contribute to channel noise. :)
moritz_: already did.
moritz_ TimToady, pmichaud: if we go for a syntax-only solution for stubbing classes, 'proto class A { }' seems cleaner 15:37
azawawi moritz_: perl6.exe (PDX release) failed when run from outside its working directory, please see gist.github.com/182416
moritz_ azawawi: yes, you need to 'make install' it - again please see the README 15:38
eiro masak, how does vim users polute this chan ? (and do you guys have a suggestion about a cool irc client)
masak eiro: I've been known to do :q on the channel. :)
eiro: ERC is nice, if you like Emacs. which I do.
moritz_ because it makes it very clear up front that this is a proto definition
moritz_ is reasonably happy with vim, enough not to look for alternatives 15:39
azawawi moritz_: :)
eiro never used emacs as i'm a modal edition addict. thanks anyway 15:40
pmichaud 'proto class A { }' can work, although Rakudo will have difficulty implementing it until we get contextuals in NQP and PGE
(same problem as 'is also'/'augment')
TimToady except 'proto' implies *multiple* extra definitions 15:41
pmichaud there is that.
TimToady but ... only implies one
and people will expecte ... to work anyway
*expect 15:42
avar eiro: Let me get this right. You don't want to use Emacs because you prefer to work in many different modes ?:) (slight troll)
avar (the joke being that emacs has like 2000 modes by default and you can make it modal 'ala vi if you want) 15:42
TimToady I don't use emacs because it gives me arthritis in me pinky 15:43
avar TimToady: Have you setxkbmap -option ctrl:swapcaps ?
eiro avar, i'm too lazy to explore but i would be happy to see any demo/screencast
masak I'm confused by rt.perl.org/rt3/Ticket/Display.html?id=61566
the error is gone, but the issue should remain.
TimToady avar: not exactly 15:44
avar It's recommended if you use Emacs so that every command doesn't require some sort of vulcan death grip
pmichaud masak: I'm not sure what's confusing you there
avar Keyboards used to have control where caps lock is now until MSFT screwed things up.
masak pmichaud: that the binding of the 1 to the @a succeeds.
pmichaud that's a rakudobug, yes. 15:45
masak pmichaud: we argue in the bug report that it shouldn't.
oh, good.
pmichaud I didn't read it that way
TimToady avar: I don't swap 'em--I destroy CAPSLOCK entirely and make 'em both control
pmichaud <pmichaud> you should get a "Int does not do Positional role"
exception or something like that.
(from the ticket)
masak right.
I'm reading sloppily. :/
pmichaud I suspect I can even fix that bug today. :) 15:46
avar TimToady: I WOULD DO THAT EXCEPT I FIND CAPS LOCK HELPFUL FOR YELLING
TimToady but there are still far too many ^X thingies
azawawi moritz_: Thanks for your help :)
pmichaud I wonder how many times I've intentionally hit the "caps lock" key on this keyboard. I suspect the number is surprisingly close to zero.
pmurias TimToady: that's the better way of doing things ;)
btw shouldn't you remap caps lock to escape? 15:47
TimToady hey, I used to *hack* on Gosling's emacs, so it's not like I'm unaware of the interface :)
moritz_ pmichaud: which is why I bound my capslock key to ESC, which is nice for vim users :-) 15:48
TimToady I've used so many different keyboards with strange ESC keys that I've learned to type ^[ instead 15:49
masak rakudo: my $t = 5; say $t\i 15:53
p6eval rakudo 205733: OUTPUT«Confused at line 2, near "\\i"␤in Main (src/gen_setting.pm:3469)␤»
pmichaud std: my $t = 5; say $t\i # checking
p6eval std 28196: OUTPUT«ok 00:02 38m␤»
TimToady yes, there is no .i method anymore 15:56
masak the ticket said as much.
hm, looking at rt.perl.org/rt3/Ticket/Display.html?id=62900 , I don't actually know what "doing it right" would entail. 15:57
pmichaud rakudo: my $t = 5; say $t\++; say $t; 15:57
p6eval rakudo 205733: OUTPUT«Confused at line 2, near "\\++; say "␤in Main (src/gen_setting.pm:3469)␤»
pmichaud std: my $t = 5; say $t\++; say $t; # checking
p6eval std 28196: OUTPUT«ok 00:03 38m␤»
TimToady just considered a degenerate case of unspace 15:58
pmichaud right
moritz_ rakudo: say %*ENV\ <PATH> 15:59
p6eval rakudo 205733: OUTPUT«/usr/local/bin:/usr/bin:/bin:/usr/games␤»
moritz_ rakudo: say %*ENV\<PATH>
p6eval rakudo 205733: OUTPUT«/usr/local/bin:/usr/bin:/bin:/usr/games␤»
moritz_ suspects that the i is just not parsed as a postfix, but as part of term
TimToady STD has in its POST rule: [ <.unsp> | '\\' ]? 16:00
pmichaud rakudo has that also
masak rakudo: sub s {}; s
pmichaud but part of the difference is that rakudo's postfix is handled differently
p6eval rakudo 205733: OUTPUT«s/// not implemented, try .subst as workaround at line 2, near ""␤in Main (src/gen_setting.pm:3469)␤» 16:01
masak o_0
moritz_: what's the meaning of this? :P
TimToady he wants you to translate to Sweutch, I guess
pmichaud anyway, we probably can't fix the postfix handling in rakudo until we have protoregexes 16:02
moritz_ masak: of what? bug!
masak zubmitz ze bug
moritz_ std: sub s { }; s
p6eval std 28196: ( no output )
moritz_ rakudo: sub s-expr { }; s-expr 16:03
p6eval rakudo 205733: ( no output )
masak heading to the store now. I'm on page 3 of 10 in RT, and have already built up quite a list. this will be interesting. 16:10
azawawi hi 17:20
pugs_svn r28197 | moritz++ | [S12] undo '...' semantics in class bodies. 17:30
r28197 |
r28197 | Now only a single ... term in the classes marks that class as a forward
r28197 | declaration, making it a declaration.
pmichaud moritz++
I might be able to add this a bit later 17:31
moritz_ that would really be great 17:32
moritz_ masak++ # Cheese speleology 17:38
dalek kudo: e2eaf33 | pmichaud++ | src/builtins/globals.pir:
Remove contextual fallback to %*ENV (as per r28193).
moritz_ pmichaud: should I remove that from the spectests too? 17:39
or did you already do that?
pmichaud I did a spectest run after removing it and everything passed 17:42
so I guess it's already been done
moritz_ not quite ;-) 17:43
pugs_svn r28198 | moritz++ | [t/spec] remove %*ENV fallback from contextual variables (as per r28193)
pmichaud oh! that file isn't in spectest.data 17:44
it probably should be, now :)
moritz_ it was passing before, too (I think)
pmichaud I'll let you add it to spectest.data :) 17:45
moritz_ ok
done 17:47
pmichaud git push 17:48
perl tools/progress-graph.pl
rsync -auv rakudo-tests-* pmichaud.com:www/perl6
oops, wrong window
pmichaud we need to come up with a better mechanism for estimating the size of the spectest suite.... or we need to stop generating reports that depend on knowing the size of the suite 17:49
(or we need to get rid of the 'plan *' lines)
dalek kudo: 8d5a40a | moritz++ | t/spectest.data:
add contextual.t to spectest.data, pmichaud++
17:50
kudo: c1d96ce | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 435 files, 14255 pass, 0 fail
moritz_ pmichaud: a good approach would be to only estimate them with ack when rakudo can't run them
pmichaud where 'estimate them' is a sequence of (1) check for a plan line with a numeric value, (2) if no such plan line exists, count the number of calls to is/ok/isa_ok/etc. ? 17:52
moritz_ (1) would be a very good start already
pmichaud well, that's what currently happens
moritz_ the number of test files that rakudo can't and that uses 'plan *' is not large
pmichaud we're running into issues with the 'plan *' lines
pugs_svn r28199 | lwall++ | [S10] specify time of execution of package blocks and module (non)mainline code 17:53
r28199 | [S12] give example of use of yada classes
moritz_ pmichaud: aren't we always using (1) right now, even if rakudo can run it?
pmichaud moritz_: we might be, although my test_summary.pl script was also counting the number of tests rakudo actually ran. I think mberends++ might've removed that, though 17:54
Tene phenny: tell masak I very much plan to change that. I'm very much not done with it yet. 17:55
phenny Tene: I'll pass that on when masak is around.
Tene: 12:26Z <masak> tell Tene um, it's kinda crippling that one has to sit in the same directory as SQLite3.pir... any plans to change that?
Tene .u € 17:56
phenny U+20AC EURO SIGN (€)
Tene Whiteknight: you can ask phenny in here
moritz_ phenny++ 17:57
I like here more with each day
TimToady rakudo: BEGIN our $answer = 42; say $answer 17:58
p6eval rakudo 8d5a40: OUTPUT«Could not find non-existent sub BEGIN␤»
TimToady std: BEGIN our $answer = 42; say $answer 17:59
p6eval std 28199: OUTPUT«ok 00:02 38m␤»
Matt-W Does that BEGIN only affect the 'our $answer = 42' ?
azawawi moritz_: is perl Configure.pl --gen-parrot --gen-parrot-prefix=myfolder a supported way of installing parrot/perl6 to myfolder? 18:00
pmichaud azawawi: yes.
azawawi pmichaud: it dies here 18:01
pmichaud: on PDX
pmichaud dies with what?
azawawi pmichaud: let me clean and try again...
pmichaud it might want a full path for --gen-parrot-prefix 18:02
actually, I suspect that's the issue
TimToady Matt-W: yes, it's a statement_prefix in STD
azawawi pmichaud: in my case we used to install six on c:\strawberry\six 18:03
TimToady but what I'm really wondering about right now if the fact that 'our' defines its init to run at INIT
time
Matt-W TimToady: I didn't know about that, that's cool.
TimToady which is after the BEGIN, which is a problem
Matt-W oh
pugs_svn r28200 | moritz++ | [t/spec] test context vars in private and public class and instance methods
azawawi TimToady: any idea why we have a $DEBUG, $endsym and $SCOPE defined twice in STD.pmc? 18:04
TimToady It might have to be modified to 'at INIT time, but no later than execution time of the 'our'
Matt-W can BEGIN blocks have their own INIT blocks and their own INIT time? or would that just be too confusing?
TimToady azawawi: probably to keep perl 5 from getting confused, since it's emulating context vars with local 18:05
or there's an extra declaration in there to keep someone from complaining about somethign undefined somewhere :)
moritz_ Matt-W: I think they can
TimToady is my recollection
pmichaud azawawi: yes, --gen-parrot-prefix wants a full pathname, or at least something that isn't ambiguous (more)
if one just does --gen-parrot-prefix=myfolder it gets installed to parrot/myfolder on my system 18:06
azawawi pmichaud: gist.github.com/182488 18:07
TimToady moritz_: in fact, in your blog yesterday you had: BEGIN { @*INC.push: 'src/svg/lib' }
and that could lose the {} someday
well, if you add ; at the end
pmichaud azawawi: yes, that's exactly what I got
moritz_ TimToady: I know, but I currently like to blog about code that actually runs ;-)
TimToady std: BEGIN @*INC.push: 'src/svg/lib';
p6eval std 28199: OUTPUT«ok 00:03 37m␤»
pmichaud parrot installed to parrot/myfolder/, but rakudo is looking in myfolder/
TimToady nodnod, wasn't suggesting otherwise 18:08
Matt-W TimToady: that is nice
TimToady why I said "someday" :)
moritz_ sure
azawawi pmichaud: failed again with full path (win32) 18:11
pmichaud azawawi: oh, I see the problem. Configure.pl doesn't understand its own prefix 18:12
looks like it would have to be --gen-parrot-prefix=<path> --parrot-config=<path>/bin/parrot_config
Configure.pl:40 should be fixed to be smarter about that
M_o_C Configure.pl doesn't understand its own prefix <-- Configure.pl prefix = Perl 6 prefix which is not neccessary Parrot prefix... 18:13
So it shouldn't be fixed but improved :)
moritz_ pmichaud: I can take a look at that iin a few minutes
pmichaud moritz_: that would be great. For now, I'd simply say that if --gen-parrot-prefix is supplied we use use it instead of parrot_install/bin/parrot_config 18:14
(on line 41)
M_o_C Meh, sorry, I just realised I typed quicker than I could think. 18:15
azawawi tries it 18:16
moritz_ I think I have a fix for --gen-parrot-prefix, testing it now 18:21
finanalyst pmichaud: two questions, please. why does the total number of tests on the rakudo page fall? And how much of the do-not-work will be resolved by rakudo star? 18:26
pmichaud finanalyst: total number of tests fall because (1) the spec has changed such that some tests are eliminated, and (2) we don't have an accurate mechanism for counting tests 18:26
moritz_ (2) is a much larger effect than (1) at the moment, though 18:26
pmichaud in the case of #2, some of the tests' "plan 123;" lines have changed to read "plan *;", and the script that calculates the total number of spectests doesn't know what to do with "plan *;" 18:27
finanalyst ah
pmichaud as far as how much of the do-not-work will be resolved by Rakudo star, I can't definitively answer that until it's actually released :)
azawawi TimToady: Can u please take a look at this gist.github.com/182503 ?
pmichaud however, the items tagged with "1" at the bottom of docs/ROADMAP are all intended to be fixed by the Rakudo Star release. 18:28
finanalyst what is the point of plan *? Isnt part of having a plan to do with a testable number of tests? 18:28
pmichaud my overall intention at this point is that Rakudo Star gets released in April 2010 "no matter what". If that means that some features aren't quite implemented, I think we can still have a "usable release". 18:29
i.e., I'm becoming more and more a believer that it's better to say "we're releasing on date YYYY-MM" than to say "the next release will absolutely have features A, B, C, ..., and Z" 18:30
especially if we adopt a "release often" philosophy
(all of this sounds worthy of a blog post, I guess) 18:31
moritz_ while writing my commit message I figured that what I planned to do was not what I had done. Back to hacking and testing... 18:32
moritz_ I love writing of commit messages 18:32
masak writing of commit messages loves you!
phenny masak: 17:55Z <Tene> tell masak I very much plan to change that. I'm very much not done with it yet.
moritz_ it forces you to recap what you did
masak Tene: nod.
pugs_svn r28201 | lwall++ | [S06] remove the slightly non-sensical 'use GLOBAL' in favor of 'defines' 18:33
azawawi pmichaud: it worked with C:\strawberry\six>perl Configure.pl --gen-parrot --gen-parrot-prefix=c:\strawberry\six\myfolder --parrot-config=c:\strawberry\six\myfolder\bin\parrot_config.exe 18:33
pmichaud azawawi: excellent. That will continue to work, but we'll also fix it so that the --parrot-config option isn't necessary if --gen-parrot-prefix is specified. 18:34
moritz_ aye, I have a patch for that
testing as we speak
pmichaud afk, errands 18:35
M_o_C Hm... So it seems like RT#68746 only occurs on my system... 18:35
finanalyst pmichaud: what governs the priorities of features, viz. which bits of rakudo get implimented first?
pmichaud finanalyst: bigger itches get scratched first :) 18:36
finanalyst: if you're looking for a definitive formula, there isn't one.
finanalyst no not a formula. just i've been waiting for variables in regexen for a while 18:37
and its been on the todo
just trying to work out when it'll get done
moritz_ hops that this will fall out of the PGE refactors pretty easily
finanalyst without annoying anyone
azawawi pmichaud: thanks... building PDX as we speak... wonderful job on separating them, pmichaud++, moritz_++
dalek kudo: 6b22b9d | moritz++ | Configure.pl:
when --gen-parrot-prefix is passed along, we should also search in that path for parrot_config
18:38
kudo: 446d49f | moritz++ | :
Merge branch 'master' of [email@hidden.address]
pmichaud finanalyst: that will happen sooner rather than later
M_o_C Plus it probably would make more sense to say "which bits of Perl 6 will be implemented soon" as you can already use Rakudo.
pmichaud being able to get variables to work in regexes was blocking on getting lexicals to work in parrot
and that didn't really happen until last November 18:39
but it also requires a significant PGE refactor
because PGE doesn't really understand regexes embedded in lexical scopes just yet
anyway, I would expect variables to work in regexes by about the October 2009 release. 18:40
(it might happen for the September 2009 release, but that's a little less likely)
finanalyst how easy would it be to create a gantt graph, showing which features are dependent on which?
pmichaud we already have that 18:41
finanalyst oh where?
pmichaud not as a graph, but a description of what features are blocking on what components
in the ROADMAP
pmichaud each item in the roadmap identifies the pieces it's blocking on 18:41
1 * lexical variable lookups in regexes (A) 18:42
the (A) indicates it's blocking on the PGE refactor
finanalyst i am re-reading ROADMAP and can see that now 18:43
pmichaud afk, lunch and then errands 18:44
pugs_svn r28202 | lwall++ | [gimme5] remove dup our declarations for azawawi++ 18:48
r28202 | [Test] add testing_done
TimToady er, done_testing...
azawawi TimToady: thanks :) 18:52
pugs_svn r28203 | azawawi++ | [STD] removed duplicated our $DEBUG 19:30
Tene Aw, ' is only valid in the inside of an identifier. 19:42
not at the end
so I can't say $a' = f($a);
moritz_ correct 19:43
sharada :( 19:48
PhatEddy buubot: print "test\n" 20:02
buubot PhatEddy: Couldn't match input.
sharada buubot: print "Couldn't match input." 20:03
buubot sharada: Couldn't match input.
moritz_ sharada++ 20:03
azawawi moritz_: win32's \ in paths confuses mingw32-make when building rakudo with perl Configure.pl --gen-parrot --gen-parrot-prefix=c:\strawberry\six --parrot-config=c:\strawberry\six\bin\parrot_config.exe 20:07
moritz_: it only works when you use / instead of \
azawawi moritz_: the error is like gist.github.com/182542 when you use \ instead of / in paths 20:12
M_o_C azawawi: I already reported that (rt.perl.org/rt3/Ticket/Display.html?id=68746) 20:13
moritz_ it would be nice if one of you windows users could come up with a patch
I can't fix and test it because I have no windows
azawawi i see... 20:14
sure i'll give it a try tomorrow
dukeleto moritz_: do i need to escape colons (:) in pge strings ? 20:15
azawawi moritz_: i see that parrot has its LICENSE included but not rakudo in the final thing
azawawi moritz_: im going to include parrot/rakudo's CREDITS/LICENSE along with lib/Safe.pm and Test.pm 20:15
moritz_: it worked! thanks :) 20:16
moritz_ dukeleto: you need to escape everything that's not alphanumeric or an underscore
dukeleto moritz_: touché
moritz_ dukeleto: but you can also quote it with '...' or "..." 20:16
moritz_ (you could also have a named argument that decides if a matcher should be treated as a string or a regex, and in the former case just use index()) 20:18
mberends phenny, tell pmichaud tools/test_summary.pl now tracks 'plan *;' lines and reports them above the Synopsis subtotals. Currently there are two occurrences (S32-num/rat.t and S32-trig/trig.t) with 740 and 2187 tests in them. All discrepancies between tests planned and run _should_ be logged. 20:22
phenny mberends: I'll pass that on when pmichaud is around.
mberends: 09:07Z <masak> tell mberends fixed, thanks. strange that the bug is not reproduced, though. I might have to to a full reinstall of those modules.
mberends oh, good. saw that in backlog :)
moritz_ mberends, pmichaud: I have local patches for test_summary.pl that count tests run by rakudo correctly, even if they have a 'plan *' 20:23
it just takes ages to test them 20:24
mberends ages have doubled recently. moritz_, we may have done very similar stuff. 20:26
moritz_ mberends: paste.lisp.org/display/86722 20:29
PhatEddy buubot: eval: print "test\n"
buubot PhatEddy: test 1
mberends moritz_, our two mods begin the same, then proceed differently, but my way was committed here: irclog.perlgeek.de/perl6/2009-09-02#i_1456692 20:36
moritz_ mberends: yes, I know that. But unless somebody actually commits these changes they don't correct any statistics 20:43
mberends: and I don't think that statistics are good reason to make testing any harder than it needs to be
mberends moritz_: I guess colomon++ preferred to stay with 'plan *' until the trig and num tests are closer to stable 20:44
moritz_ mberends: I prefer 'plan *' in a lot of cases. counting tests can be really painful 20:45
mberends *nod
pugs_svn r28204 | moritz++ | [t/spec] comment a "plan" inside POD that was confusing some statistics 21:04
moritz_ mberends: turns out my first patch was bogus - the 'plan tests => $numbers' are actually perl 5 left-overs in POD sections
mberends oh, ok
moritz_ and one of them was report 16k tests :/
mberends moritz_: well caught then! 21:04
moritz_ it wasn't all that hard, when the number jumped from 17k to 33k - that makes a physicist suspicious ;-) 21:05
xenoterracide how easy will it be to migrate a perl 5 app to perl6 (generally speaking)? and is there any kind of target date for a full spec implementation of perl6? 21:11
moritz_ if all goes well, you can just leave the application in perl 5, and embed { use v6; perl 6 code here } blocks 21:13
and migrate as gradually as you want
and no, we don't have a fixed date
xenoterracide perl6 is supposed to suport perl5 too? or a parrot implemention of perl5 is supposed to be done at the same time? *confused* 21:14
moritz_ xenoterracide: there's a section about that in S01, see perlcabal.org/syn/S01.html 21:15
dalek kudo: f01875f | moritz++ | tools/test_summary.pl:
[test_summary.pl] if we run a test, use the "plan" information gathered from its output
21:20
moritz_ the script now reports 20622 tests in the spectest suite, which seems like a realistic number to me 21:21
pmichaud agreed, 20622 sounds more correct 21:28
phenny pmichaud: 20:22Z <mberends> tell pmichaud tools/test_summary.pl now tracks 'plan *;' lines and reports them above the Synopsis subtotals. Currently there are two occurrences (S32-num/rat.t and S32-trig/trig.t) with 740 and 2187 tests in them. All discrepancies between tests planned and run _should_ be logged.
moritz_ I just pushed another proposed release name to github - including an URL of a blog post that tells about a nice hackathon 21:30
I think it's a good idea to include some sort of reasons
pmichaud moritz++ # beat me to it :-) 21:31
moritz_ so that prospective release managers can make a somewhat informed decision and can explain in the release note why they chose it
dalek kudo: 01ae3fa | moritz++ | docs/release_guide.pod:
[docs] propose ThousandOaks as a release name, in recognition of their cool Perl 6 hackathon
21:32
xenoterracide rakudo.org/status < so when this page show's green all the way to the top? is the perl 6 spec 100% implemented (in rakudo)? 21:33
pmichaud xenoterracide: no. 21:34
xenoterracide: we don't have tests for all of the perl 6 spec yet
mberends xenoterracide: we still need to write a lot more tests...
xenoterracide ah
pmichaud xenoterracide: and the perl 6 spec isn't finished
xenoterracide ok
moritz_ oh, and the grey bar is smaller than it should be, because we had problems compiling our data 21:35
pmichaud I think I'll go back and re-run the last month or so with the new test_summary.pl
so we get something a bit more realistic
or I could just do it starting with tonight's run and leave it at that.
mberends pmichaud: leave it, whoever picks that nit is the volunteer ;) 21:37
moritz_ I'm fine with either approach
pmichaud well, I might be the one to pick that nit :-)
it's an easy background task for my notebook :)
mberends just added Windows 7 next to Ubuntu, to try out Strawberry Perl etc 21:38
xenoterracide strawberry perl an alternative to ... what is it? active perl? 21:40
moritz_ aye 21:41
xenoterracide hmm... first time hearing about it
moritz_ it's said to be a bit more friendly if you want to compile and install XS modules 21:42
M_o_C Huh, seems like the test suite was undergoing some refractoring between august and september? 21:43
mberends xenoterracide: the main advantage seems to be built in CPAN support, and a C compiler toolchain. strawberryperl.com 21:44
xenoterracide well unfortunately I hadn't heard of it when I had my perl class. and I generally choose not to use windows
moritz_ M_o_C: not all that much actually - just colomon adding tons of new trigonometry tests 21:46
M_o_C I was just wondering about that rather big drop. 21:47
moritz_ that was related to the way we declare the number of tests, and aggregate the statistics about it 21:55
soon you'll see that number is actually quite a bit higher
(larger then 20k tests)
anyway, bed & 21:56
M_o_C Ah, ok.
Cya
japhb pmichaud, NQP request: Can you make it detect use of = instead of := and give a friendly error message? I keep losing time trying to figure out what's wrong with some complicated statement only to find I just skipped the : . 22:04
pmichaud japhb: yes, I'd like to add that. 22:20
japhb: so will do.
japhb pmichaud, thanks!
zerhash hey TimToady 23:28
id like to help with perl6 23:29
avar zerhash: what are you interested in working on? 23:30
zerhash something easyish 23:32
i am new to this
but i do have lots of time on my hands
testing may be a good place to start
zerhash ya so how do i go about this? 23:37
TimToady first of all, you'll need a pugs commit bit 23:39
since the tests are stored in the pugs repo
if you msg me your email and preferred svn nick, I can send a commit bit 23:40
use /msg if you don't want to reveal your email to the wide world
TimToady a pugs commit bit also gives you the ability to hack on specs, web infrastructure, etc. 23:42
pugs_svn r28205 | zerhash++ | 23:59
TimToady I see that
welcome aboard