»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 30 July 2009.
00:09 Whiteknight joined 00:19 kane_ left 00:25 jferrero left 00:39 neusse left 00:41 dduncan joined
dduncan so, I just git-pulled the latest Rakudo and "perl Configure.pl --gen-parrot" fails with "Unable to locate parrot_config" 00:45
this didn't happen with the rakudo-2009-07 on CPAN
is this an error or do I have to do something different with the Rakudo from source control versus from the distro? 00:46
I didn't get the impression I had to do anything different
the Rakudo from git has as its latest change: bump build/PARROT_REVISION to r40598 00:47
the problem might be in Parrot
mikehh dduncan: did you do a make realclean? 00:51
dduncan when I say "git-pull", what I mean is "fresh clone into an empty directory"
it wasn't pulled over the 2009-07 00:52
just what Rakudo's README says to do
mikehh, so no make realclean 00:54
mikehh ok - I know there have been changes in the configuration and parrot had problems prior to 40598 - I just built with parrot r50603 but I used a different configuration procedure
I build using an installed parrot rather than parrot in rakudo 00:57
dduncan I'll try just building the Parrot that Rakudo downloaded directly and see if that part works 00:58
mikehh sorry parrot r40603
I actually build parrot separately then sudo make install-dev for parrot then in the rakudo directory 01:00
dduncan well I see one potential problem
my working path has spaces in it, and the makefile may not be smart enough to deal with that 01:01
at least 'make realclean' in the parrot dir has an error suggesting it wasn't space savvy
mikehh i do make realclean, git pull, perl Configure.pl --parrot-config=/usr/local/bin/parrot_config, make, make test, make spectest 01:02
dduncan okay
mikehh AFAIK if you use --gen-parrot it installs and builds parrot in a rakudo sub directory 01:04
dduncan I know 01:05
so I just cleaned that parrot subdir of the rakudo dir and will try building Parrot directly as if it were a normal Parrot checkout ... which it is 01:06
if that fails, I'll svn-up and try again 01:07
mikehh I think that should work
dduncan since Parrot's just in feature freeze now, so sayeth #parrot status, probably nothing should break Rakudo 01:08
so the "last known good" number is less important
mikehh :-}
well I built and tested on parrot r40603 and r40604 is just in a branch 01:10
but that was on Ubuntu 9.04 amd64 so I don't know if that will apply to you 01:11
dduncan I'm using Mac OS X 10.5.7 currently 01:17
01:18 alester joined
dduncan mikehh, so I have confirmed that at least at r40598, Parrot's Makefile generator is broken, and doesn't escape spaces in the path 01:25
I am reporting to the Parrot group, will file an RT there if one doesn't exist 01:30
er, trac
01:34 meppl left 02:01 Whiteknight left 02:04 alester left 02:10 takadonet1 joined
takadonet1 hmmm 02:10
02:12 takadonet1 left 02:24 sri_kraih_ joined 02:30 sri_kraih left 02:51 frew joined 02:52 rml_ left 02:56 tak11 joined 03:20 sri_kraih joined 03:22 gdickie left 03:25 carlin joined 03:26 sri_kraih_ left
dduncan fyi, on #parrot - dalek: TT #930 created by duncand++: build fails when sandbox path contains whitespace 03:45
which is probably the cause of the issue I mentioned here
I'll note that when I tried the older Rakudo 2009-07, it was in a different dir without whitespace 03:46
04:02 frew left 04:03 zloyrusskiy joined 04:22 frew joined
s1n hmm, what's triggering this: pastebin.com/d29fdd7c7 04:39
04:42 frew left
s1n i'm going to try wiping out my clone and try again, i suspect there is something wrong with it 04:50
04:56 alester joined
s1n nope, still a problem 05:02
can't tell from the error message what went wrong 05:03
huh
if i do a "../rakudo/perl6 -e 'use v6'" i get the same error 05:04
05:04 abra joined, abra is now known as mookee
s1n i suspect this is a parrot bug? if i switch out of the rakudo dir to execute perl6, it barfs 05:05
05:06 lee_ joined, lee_ left, lee_ joined 05:07 lee_ left, zetta joined 05:17 dduncan left 05:27 nihiliad left 05:41 orafu left, orafu joined
carlin s1n: I'm getting that too. I have a perl6 symlink in /usr/bin which was working until I pulled the latest version from git last night 05:42
05:47 jaldhar left 06:03 jrtayloriv joined 06:08 jrtayloriv left, jrtayloriv joined 06:21 jrtayloriv left 06:25 rfordinal joined 06:27 szabgab joined
moritz_ s1n: if you install rakudo, does it work from other dirs? 06:28
or you, carlin?
06:29 zloyrusskiy left 06:31 xinming left, xinming joined 06:36 xinming left, xinming joined, zloyrusskiy joined, japhb left 06:37 kyle_l5l joined 06:45 rfordinal left
carlin Testing it now, I just ran make again and it seems to be working fine 06:46
07:00 japhb joined 07:03 rfordinal joined
carlin moritz_: built it with make, ./perl6 in the rakudo directory works, outside the directory it gives a Null PMC access 07:12
moritz_ carlin: but did you 'make install'?
carlin after using 'make install' it runs from any directory
moritz_ ok 07:13
07:13 akl_ is now known as akl
moritz_ that's my experience too 07:13
carlin so, expected behaviour?
moritz_ don't know if it's expected or not
we'll have to ask pmichaud++
07:13 zamolxes left 07:18 alester left 07:20 dukeleto left 07:31 baest joined 07:55 eiro left, eiro_ is now known as eiro
moritz_ ELISHEVA mentioned on perlmonks that there is no mention of the Rakudo * release announcment on novemeber-wiki.org - maybe somebody[tm] should change that 08:01
Matt-W Good morning 08:05
moritz_ oh hai Matt-W
Matt-W Guten Tag, moritz_. 08:08
If Twitter is anything to go by, masak seems to like the new S26 08:16
Have you read it yet moritz?
moritz_ Matt-W: no, I started, but didn't finish yet
I noticed one oddity 08:17
POD defines an identifier differently from the rest of Perl 6
that sucks.
apart from that, all seems (more or less :-) sane
Matt-W Hmm I didn't notice that 08:18
That could be a problem
It would be nice if they could be the same
Matt-W notices he's acquired a snail again
moritz_ I do plan to reply to p6l with my findings once I made my way through it 08:19
Matt-W yay
I haven't had time to think on it deeply enough to make a decent comment to the list 08:20
And I doubt I'll manage that this week, I'm busy all the time :(
Aikido today, singing lesson tomorrow, gaming on wednesday, aikido on thursday and a wedding on friday!
So I'll just have to hope someone says what I would have said 08:21
Which is currently limited to some mumbling about #= and rules
08:29 tak11 left 08:33 tak11 joined 08:37 payload left 08:42 jrtayloriv joined 08:44 dakkar joined, masak joined
mberends good morning masak 08:45
masak good late morning, mberends
mberends: so, new S26, eh? :) 08:46
08:46 jrtayloriv left
mberends exciting! 08:46
masak I haven't read the new synopsis yet, but I liked the executive summary. 08:47
moritz_ masak: o/ 08:48
masak: I noticed that the only SVG specific part of SVG.pm is the name and the documentation
masak: it seems to be general XML serialization module
masak moritz_: it is.
I never got to the specific parts. :)
still have some plans, though. 08:49
moritz_ but you planned to do it?
masak aye.
moritz_ I might contribute some patches...
I have two specifics in mind
masak great.
moritz_ the first is to add a xmlns attribute to the svg root element, automagically
masak for my own plans, I'm blocking on understanding DTDs in general, and SVG's in particular. 08:50
moritz_ without it firefox won't render it as svg
masak moritz_: sounds good.
moritz_ it just shows the dom tree
the second is, the SVG spec recommends that line lenghts should not exceed 255 characters
masak ah.
moritz_ so I'd put in a few newlines here and there
masak good. 08:51
sounds more realistic than indenting properly.
moritz_ context variables would make indenting really easy
masak well, not with a maximum line length. 08:52
moritz_ heh
even then one could still limit the indention to a fixed maximum
masak by the way, why aren't people as spooked by context variables as they are by global variables? 08:53
moritz_ and call all else "bad style"
because they are not global
masak they seem pretty global to me.
moritz_ they are basically "globals done right"
the behave naturally in case of threads
can't be clobbered by destructors (because the are passed along the call chain) 08:54
masak well, carry on then. :) 08:55
moritz_ and when declared in a sub they don't mess with reentrance
because they are cleaned up after exit
(assuming that I did understand them correctly, which I don't take for granted :/ )
masak will now mark up his Druid class with the new, improved S26 markup 09:04
s/class/classes/
moritz_ S26 is a monster. I like it.
masak yah, ich auch.
mberends Where is the new S26? Perlcabal and Pugs appear to be old. 09:05
masak mberends: it's not yet committed.
moritz_ I'm currently at 38%, and so far I only have two small nicts
mberends: it lives as an attachment on p6l 09:06
masak however, it's attached to a p6l post by TheDamian.
mberends aha, thanx
moritz_ masak: regarding SVG/XML, I think it would be worthwile to preserve the current pure XML thing in a module of its own, and bolt on the SVG specifics in SVG.pm or XML::SVG or os 09:07
s/ «os$ /so/
masak moritz_: aye. 09:08
that has been in the back of my mind, too.
moritz_ though 'XML' might be too general a name - maybe XML::Writer? 09:09
masak yes.
another SVG-specific tweak that I'd like would be to special-case 'style' attributes, so that their values can be either strings or lists of pairs.
moritz_ that would be nice 09:10
(though excessive use of 'style' attributes might be a sign of under-using CSS - at least in some cases) 09:11
masak I must confess to never having used CSS with my SVG. 09:12
moritz_ laughs while reading 1) Retreat to remote Himalayan monastery n 2) Learn the hidden mysteries of space and time n ??? n 3) Prophet!
masak that was in the previous generation of S26 too. :)
09:13 eiro left
moritz_ masak: I only used it in my hand written CSS so far, not in generated SVG 09:13
masak: but for SVG::Plot it seems sensible to just emit certain things (like axis, ticks etc.) with names and/or id's and let the user style it if he wants something more fancy 09:14
masak moritz_: I feel I've missed something big here. SVG::Plot? 09:15
masak needs to backlog
moritz_ masak: the thing that I wanted to blog about yesterday, but couldn't, because my SVN server is broken...
masak ah.
have you blogged about it since then?
moritz_ no, it's still borked :(
masak :/ 09:16
moritz_ moritz.faui2k3.org/tmp/svg-adventure.html exclusive preview with only slightly broken markup 09:18
09:22 synth left 09:25 eiro joined, eiro left 09:26 eiro joined
carlin a5dfe96 works, 006ae4d throws a Null PMC if you try to run perl6 outside the rakudo directory 09:26
so the ins2 merge caused it 09:27
moritz_ that's not surprising at all
09:27 eiro left 09:28 eiro joined
masak moritz_++ # amazing post 09:29
as for a general graphing module, I still would like to see someone (psst! lurkers!) go on a quest with writing a Perl 6 port of scruffy.rubyforge.org/ 09:31
09:40 jrtayloriv joined
jnthn Morning, folks 09:41
masak lolitsjonathan 09:42
09:43 eiro left
frettled masak: okay, enough sugar for you today. 09:44
09:44 eiro joined
frettled good … *checks time* noonishtime. 09:44
09:45 tak11 left
masak frettled: my sugar intake so far today is limited to one banana. I think I'm just naturally perky. :) 09:47
frettled masak: that is entirely possible :D
09:47 jrtayloriv left
jnthn carlin: I think you need to make install now to run Rakudo outside of its build directory. 09:51
We likely want a better error message when this is not done.
masak hm, sites.google.com/site/perl6hackato...a/ejemplos
we should contact these guys and tell them it's "get" nowadays.
masak tweets them 09:53
jnthn sites.google.com/site/perl6hackato...-el-codigo maybe wants also an update noting make install. 09:54
masak aye. but they seem to be running ./perl6 09:55
09:55 kyle_l5l left
masak so that's not as urgent. 09:55
besides, they link to the updated instructions.
jnthn Ah, yes, true. 09:56
09:56 mikehh_ joined
masak what should I do if I want to load a module lazily, on the first mention of its module name in code? 10:02
jnthn I'm not sure how you'd do that too easily in Perl 6, given that type names the module exports will affect the parse... 10:07
And there's no way of knowing that without some amount of loading of the module. 10:08
masak ok. 10:09
I have a use case, but maybe there's a better solution than lazy loading of modules. 10:10
in Rack, Rack::Handler is a sort of supervisor module for all the different Handlers, one for each type of webserver.
generally, you'll be using only one in an application.
10:10 frederico joined 10:11 mikehh left
masak but Rack::Handler loads each of the known modules lazily, so once one is mentioned, it's loaded. 10:11
jnthn Ah, and Rack::Handler determines which one you actually want? 10:12
Note that require still exists.
masak jnthn: well, Ruby has an 'autoload' kernel method for exactly this. 10:13
masak reads up on 'require'
jnthn masak: Also consider combination of eval + use 10:16
masak hm, seems to me 'require' wouldn't help reduce the number of loaded modules in my case.
jnthn: yes, I'm considering that. but I haven't thought of a solution that works as well as 'autoload' does yet.
jnthn Where what you eval uses the module and evaluates to, say, the proto-object of the thingy your're interested in.
masak I thought about overriding postfix:<::> for Web::Handler. 10:17
don't know whether that works yet. 10:18
hm, or would that be infix:<::> ? 10:19
hm, :: probably isn't an operator at all, now that I think about it.
jnthn No, not an operator. 10:24
NetCraft^W STD confirms it.
see e.g. token morename 10:25
masak right. 10:30
moritz_ read that as mo-rename and was confused
jnthn works on wrapping up his Hague Grant.
moritz_ masak: scruffy looks nice. 10:31
masak moritz_: yes, and I think it'd be a fun project for some motivated soul. 10:32
moritz_ should learn ruby at some point 10:33
Matt-W hmm 10:34
does the code which is getting the handler for a specific web server need to know it's a handler for a specific web server? can it just be given something typed as a role or a base class and rely on polymorphism? 10:35
masak Matt-W: interesting suggestion.
Matt-W well it's just what you do in C++ really :) 10:36
just, you know, easier
masak :)
Matt-W: I think what you just suggested might work. thank you.
Matt-W and you wouldn't have to load any modules for any web servers you weren't using if the global thingy knew how to decide which one was correct
and if you really really wanted to you could pass the class back 10:37
but that's probably not going to get you anything
I assume you can downcast to the more specific type if you ever do know what it actually is and need to access specific functionality (if you can't, our OO has a huge hole in it)
10:38 frederico left
masak Matt-W: actually, the Rack::Handler name space doesn't seem to be an inheritance hierarchy. 10:38
but that doesn't mean I can't make the Web::Handler name space into one.
Matt-W Indeed 10:39
Or they could just all do an appropriate role
just as long as you've got some way to provide the common interface 10:40
masak aye.
Matt-W never quite sure which is best yet
it's a role in the sense that it does webserverhandlerthings
but it's a subclass in the sense that you can (and are) substituting a child for a parent and the calling code doesn't know or care 10:41
masak right.
Matt-W goes back to thinking about how to persuade work to switch to git
jnthn I guess another question is, could the behavior sanely be composed elsewhere?
Matt-W jnthn: how are you supposed to answer that in advance??
someone's bound to want to do it later 10:42
jnthn In that case, roles make composing behavior much easier. :-)
Matt-W yes 10:43
but maybe you want more of an inherity structure 10:44
I think we'll be debating roles vs inheritance for years
masak and for good reasons.
Matt-W but then vast bits of OOP are still debated
so this is not at all surprising, and generally very healthy
I usually go with 'don't do it like Java' so roles :)
moritz_ scruffy is only 2557 lines of code 10:45
Matt-W although there's also the matter of parent's data members...
roles are a much looser coupling
and code reuse sort of flows in different directions
jnthn Matt-W: Remember that a role can be punned and inherited from too. 10:46
Matt-W yes
it's almost too many options
masak moritz_: are you thinking about doing it? for a while, I almost had missingthepoint embark upon the project.
Matt-W but I'm sure I'd miss them later if they weren't there
moritz_ masak: not convinced yet 10:47
I also thought about putting missingthepoint on it :-)
masak yes, let's. :)
10:50 szabgab left 10:52 drbean left
jnthn Ouch 10:57
Latest Rakudo along with its recommended Parrot seems to segfault during the build. :-/
Matt-W !
moritz_ jnthn: ouch.
jnthn: do the dynops install correctly under windows? 10:58
jnthn realcleans everything and removes his Parrot build and install directories, and tries again...
moritz_: Good question.
10:58 pmurias joined
jnthn moritz_: The new rand is in math_ops, right? 11:02
It includes the .dll, so looks right.
moritz_: Ah, it is crashing when loading that though. 11:04
Oddly, it's actually loading the library fine. 11:08
In terms of actually finding it. 11:09
It's somewhere inside the library's init that it fails.
11:18 SmokeMachine left 11:31 carlin_ joined, ZuLuuuuuu joined 11:41 szabgab joined 11:47 zamolxes joined 11:55 meppl joined 12:08 KyleHa joined 12:10 carlin__ joined
masak it's too quiet here. let's dig up some bugs. 12:10
rakudo: sub foo($required, :$optional) {}; foo
p6eval rakudo 0d4fe0: OUTPUT«too few arguments passed (0) - 4 params expected␤in sub foo (/tmp/XS7w5NHznE:1)␤called from Main (/tmp/XS7w5NHznE:2)␤»
masak note the '4'.
12:11 carlin left
masak I'd have accepted 'between 1 and 2 params expected'. 12:11
12:11 carlin_ left
KyleHa Good morning #perl6 12:11
12:11 carlin__ is now known as carlin
masak or possibly '1..2 params expected'. 12:11
jnthn masak: Already ticketed.
masak KyleHa: morning!
jnthn: oh, good.
jnthn It's because Parrot mis-counts... 12:12
For example, a named param makes two entries in Parrot's signature object.
masak yes, I understand.
still wrong.
jnthn Yes, I know.
But the fix hinges on whether Parrot Calling improves or whether I abandon in and we go our own way.
masak right. 12:13
next one:
rakudo: IO.WHAT.say
p6eval rakudo 0d4fe0: ( no output )
masak I'd expect this to print "IO()" or something. 12:14
masak submits rakudobug 12:15
next one:
rakudo: say %(<a b c>.kv)["a"]
p6eval rakudo 0d4fe0: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class ''␤»
masak o_O
masak submits rakudobug
moritz_ it seems that %(...) is generally a bit dysfunctional 12:16
KyleHa rakudo: IO.WHAT.perl.say 12:17
p6eval rakudo 0d4fe0: OUTPUT«IO␤»
12:18 synth joined
jnthn masak: Hmm? Is that trying to index positionally into a hash? 12:18
moritz_ yes 12:19
jnthn Well that ain't going to work.
moritz_ but shouldn't it be ... of class 'Hash'?
jnthn Yeah, that'd make a better error message. 12:20
12:21 carlin_ joined
KyleHa I tried to introspect $! the other day, and it bit me. 12:22
jnthn Good news - I've written an (awful) Parrot patch that deals with the segfaults. 12:24
Appears it did a realloc, and then still used the memory at the old pointer later on.
Matt-W doh
jnthn Which is a no-no, since realloc is free to move the whole block.
Matt-W naughty parrot
jnthn Indeed.
Matt-W very very naughty parrot
someone here tried to pull something like that the other week
masak oh, of course! 'postcircumfix:[ ]' wouldn't work on a Hash, true. 12:25
Matt-W worked fine in dev testing...
jnthn commenting out the more "optimal" code path makes the problem go away.
Matt-W jnthn: I was intrigued by a bug report email that came through earlier
you said Callable &x means Callable[Callable], so a routine returning a Callable - would that then extend to if I said Str &x?
jnthn Matt-W: That means you want a routine that declares itself as returning a Str. 12:26
Matt-W excellent
KyleHa jnthn++ # pounding pointer problems
Matt-W It's a nice parallel with Str @a being an array with Strs in it 12:27
jnthn Matt-W: and yes, you can multi-dispatch on these too, and they nest.
Matt-W yay!!
is there anyway to specify that you want a routine which takes particular parameters?
jnthn Yes, all of these type things really are "what you can expect to get out of it".
In Perl 6? Yes, various. In Rakudo right now, not yet. 12:28
Matt-W Good
as long as we'll be able to do it at some point
jnthn I think you can specify a signature that you'd like the code to match, but that works at the level of a constraint I think, rather than a type param.
Matt-W I anticipate using a fair amount of higher-order coding with Perl 6, so I'll be needing to say 'I need something which can take two ints and give me back a str'
moritz_ Matt-W: it's sub foo(&bar:(Int, Str --> Mumble), $other_args) { ... }
Matt-W woo
it's even a nice syntax 12:29
jnthn moritz_: Is that in S06?
moritz_ (I wrote tests for it, but never actively used that, so I might misremember a bit, but it's along these lines)
jnthn: let me look up a reference for you...
12:30 KyleHa left
moritz_ S06:1291 12:30
jnthn moritz_: Cool, thanks.
moritz_ also S03:209
and S02:1714 12:31
Matt-W he only asked about S06... 12:32
comprehensive service from moritz_ Inc Synopsis Lookup Service
moritz_ powered by ack, the best thing since sliced regexes :-) 12:33
ack '&\w+:\(' did quite nicely - 6 hits, no false positives
jnthn That only means the synopses have insufficient unhappy smileys. 12:34
masak jnthn: a bit like civilization not having enough nukes. www.informationisbeautiful.net/2009...-the-bomb/ 12:35
jnthn What is the fallout of a :(? 12:37
Matt-W masak: it's totally flawed, of course 12:42
moritz_ gently humms "so long mom, I'm off to drop the bomb"
Matt-W: the comments say as much
Matt-W jnthn: usually, a depressing realisation that you just don't have enough tuits to fix it
moritz_: good. They didn't when I read it, but it was very new then.
12:47 szabgab left, szabgab joined
pugs_svn r28011 | jnthn++ | [t/spec] Add new tests for applying traits to roles and classes. 12:52
12:56 xomas_ joined 12:58 mikehh_ is now known as mikehh
frettled Someone suggested (by impliciation) that since PHP has a mapping-like type where keys by default are returned in insert order, Perl 6's hashes should have that too. 13:05
I'm writing down a brief explanation that essentially states that hashes would normally use a hashing algorithm, which is more efficient for updates, deletes etc, little impact on insert, and so on … 13:06
13:06 zloyrusskiy left
moritz_ the times when I wished such behaviour were very rare 13:07
frettled … but I also thought it'd be cool if I could sort of create a subclass of hash that adds a list type where hash keys are in insert order.
masak frettled: I thought the same when I saw that comment.
frettled In other words: «no, hashes won't do this for you, but if you must, here's how»
masak: great Scandinavians think alike ;) 13:08
moritz_ my %h is OrderedHash;
13:08 frettled sets mode: +o masak
masak \o/ 13:08
frettled (I think you lost that turd)
frettled has no clue who should really have op or not, and goes by vague recollection of who has had op :) 13:09
masak I sometimes have it, but I log out when I go home, so...
frettled uses screen, for fun and profit.
masak tries to implement OrderedHash in a one-liner, and fails
Matt-W finds it a useful aid to laziness
masak I should probably override postcircumfix:<{ }> with something, and that something will return an lvalue, no? 13:10
but then what happens?
moritz_ masak: then the NYI crew screams
masak moritz_: nono, "then what happens in idealized Perl 6.0.0?" 13:11
moritz_ frettled: we give ops to those who talk often, talks sense and seem to be nice/credible/whatever
masak
.oO( there goes my op bit... )
frettled haha
moritz_: :)
moritz_ ok, pick two :-)
masak phew. 13:12
frettled masak talks often and seems whatever.
masak indeed.
moritz_ right
frettled moritz_: the OrderedHash hint helped a bit (in finding Differences.html#Offering_Hash_and_List_semantics), but I have an example-generator-FAIL in my head, I think. 13:13
moritz_ jnthn++ # nice trait tests 13:14
frettled The awesome way of doing it would have been something like this (pseudo code)
moritz_ frettled: uhm, that assumed that somebody writes a class OrderedHash first :-)
frettled class OrderedHash is Hash {
has @.list; 13:15
masak frettled: I'd do 'does Associative'.
not 'is Hash'
frettled that's why it's pseudo
moritz_ masak: if it inherts Hash behaviour, why not?
masak because it's wrong? :)
moritz_ what's wrong with it?
frettled method insert (key, val) {
push(@.list,key.id);
} 13:16
}
13:16 takadonet joined
takadonet morning all 13:16
masak frettled: yes, that's as far as I got, too.
frettled: don't forget your sigils.
takadonet: o/
frettled masak: I skipped them in the interest of pseudo code :D
frettled should've skipped them from the start)
masak :P
takadonet masak: How are you?
moritz_ would rather have a second hash %!order, which stores increasing numbers
so that .keys, .values etc. require O(n log(n)), and inserts/deletes O(1) 13:17
frettled moritz_: like in %!order<$key.id> = $listindex? ($listindex increases for each new item or whatever)
masak takadonet: for a Monday, quite all right, thanks.
takadonet: and you? 13:18
moritz_ while if you use a list, deletes require O(n) (because you have to scan the list)
frettled yup
moritz_ of course you can use a hash *and* a list
in some clever way
frettled actually, delets are worse than O(n), because you first have to scan the list to find the element, and then delete, which also adds complexity.
moritz_ deleting is also O(n)
and O(n) + O(n) = O(n) 13:19
13:19 xomas_ left
takadonet masak: Got in late for work (does not really matter since it's flex time) and forgot to bring my bioperl6 project to work. Finally got a fasta parser working with action class that returns a Sequence object 13:19
masak ah, complexity analysts.
takadonet: cool!
frettled moritz_: good point.
takadonet masak: Had more success this weekend then I ever had before
13:20 xomas_ joined
masak nice to hear things are progressing. 13:20
moritz_ held a tutorial in "theoretical computer science I" (computability, complexity, automatons)
it's just something that doesn't let you go once you know aobut it
at least if you do some programming 13:21
frettled moritz_: but scanning the list could of course be performed as a binary search rather than a linear search, since we know it's sorted.
(in a way)
moritz_ frettled: it's sorted by insertion order, not alphabetically
frettled …unless we delete by a different sorting order.
13:21 jaldhar joined
moritz_ right. 13:21
frettled yep, «alphabetically» is one of those. 13:22
Matt-W aaah complexity measurements
always fun
frettled and it's a wonderful time saver for the program
Matt-W I remember trying to explain to somebody once that O(1) doesn't necessarily mean it's fast, just that it's very predictable 13:23
frettled sometimes, it's like flipping the incredible «improve performance switch».
moritz_ many day-to-day programming taks are quite easy to estimate (at least worst case)
frettled Matt-W: mm. «constant time» isn't necessarily cool. A nice example is that the time it takes for light to travel 100 million light years is O(1), but it will still take 100 million years. 13:24
moritz_ but it doesn't feel that long to you :-)
13:25 Lorn joined
frettled hee-hee 13:25
moritz_ it feels like O(1/sqrt(1-(v/c)**2)) or so 13:26
Matt-W if you're moving with the light, it doesn't feel like any time at all
the problem is stopping...
13:29 ruoso joined 13:30 SmokeMachine joined
frettled I'd say that accelerating is a problem, too. 13:33
moritz_ right, because you never reach c 13:34
frettled and if you're at c, accelerating is also quite hard. :D 13:36
13:37 unitxt_ joined
frettled There, commented on the comment. 13:37
moritz_ masak: to get back to your initial question, implementation types need more specs 13:38
mikehh rakudo (5637208) builds on parrot r40606 - make test/make spectest (up to 28011) PASS - Ubuntu 9.04 amd64 (g++) 13:39
13:39 frew joined
masak moritz_: please elaborate. 13:39
moritz_ masak: it's clear that %foo<bar> = $baz is realized by lvalue methods, for example...
but for example how do you override %foo = %bar? 13:40
by overloading infix:<=>? or is there a .STORE method on the container that = calls?
mkelly32 ditto on the full spectest pass on exherbo amd64
moritz_ there was a (mostly warnocked) thread on p6l about that, started by KyleHa++
mkelly32 not true on fbsd, though
current fbsd failure: test.pioto.org/rakudo/smoke/rakudo-...:00:00.log 13:42
frettled moritz_: aha, so if I search the p6l archives, I might find a message to respond to :)
moritz_ frettled: it was this summer
masak likes that Wikipedia has an article named "Perl 6 rules" 13:43
frettled \o/
moritz_ frettled: www.nntp.perl.org/group/perl.perl6....32109.html
frettled aha, the subject didn't grab my attention when searching. 13:44
bpetering masak: heh, wikipedia++ :)
masak mkelly32: I'm getting similar results here on my Darwin machine. 13:45
both the 'Perl 6' and 'Rakudo Perl' articles read very well.
the Hanoi example in the former could use some slight simplification, though. 13:46
I'll change it.
bpetering did you have anything to do with that? ;)
mkelly32 hrm. well. i ought to formalize my smoking a bit more
Matt-W last time I checked, the main Perl entry had some very old information about Perl 6
masak bpetering: no, nothing actually.
Matt-W I tweaked it a bit, but didn't do a proper job
mkelly32 to better than just that log file and a cheap cron job.
13:48 unitxt left
moritz_ mkelly32: that would be great. Something like parrot's TapTinder generalized for Rakudo 13:49
13:49 szabgab left
bpetering hmm, vmware has perl hooks... 13:50
bpetering wonders if this dual-core could be put to smoking use...
mkelly32 moritz_: well, not quite that general -- i was thinking more a simple web page, also listing machine type & version, and a simple PASS/FAIL. basically... cpantesters 13:51
moritz_ mkelly32: well, I think it would be a waste to ignore the existing infrastructure and invent something from scratch
13:51 KyleHa joined
moritz_ (but YMMV, of course) 13:51
13:52 molaf joined
mkelly32 well, that would require me to know more than nothing about databases, for one... 13:52
(well, i know very little)
KyleHa Databases know a lot about me. 13:53
frettled Yes, but they're not very good at telling. 13:54
moritz_ and you're not evenin sovjet russia :-)
13:54 ZuLuuuuuu left 13:55 szabgab joined 13:58 molaf left
frettled *nntp-subscribe* 13:58
cognominal I don't understand where Damina has posted the last version of his S26 synopsis :( 13:59
moritz_ cognominal: it's an attachment to his p6l post
cognominal so, I should choose a forum that shows such attachment :( 14:01
takadonet Has anyone else try to build and run the newest version of rakudo? I try to run the executable and getting the follow error message: 'Invalid charset number '8' specified'
14:02 Front_slash joined
moritz_ takadonet: it works fine here, as long as I only use the installed version when being outside the rakudo build directory 14:03
frettled moritz_: I've read the discussion thread regarding infix:<=> et al, and I can only agree with your statements.
cognominal I can't believe google groups does not show attachments :( 14:04
takadonet moritz_: Funny that it only works in the installed directory now and no where else. 14:05
moritz_ takadonet: fsvo "funny" 14:06
takadonet moritz_: fsvo?
masak KyleHa: your question on p6l is... surreal.
moritz_ "for some value of" 14:07
KyleHa masak: I've been assuming that I've misunderstood something fundamental.
moritz_ cognominal: moritz.faui2k3.org/tmp/S26-documentation.pod
KyleHa Eventually I figured I better ask. 14:08
moritz_ masak: I found the question quite reasonable
cognominal moritz_, thx you so much
masak moritz_: then I probably misunderstood it.
masak goes to re-read it
moritz_ masak: maybe I missed some surrealism about it :-) 14:09
masak I think I'm confused about 'some other machine ... that machine ...'
so there are two machines involved, yes?
and only the second of those two is being used, twice? 14:10
(at least from the information in the question)
14:10 braceta joined
moritz_ are we talking about the same post? 14:10
masak KyleHa's post a couple of minutes ago.
in the S26 thread.
KyleHa The way I read the S26 description, the documentation has 'live' code in it. That is, the reader must execute stuff to do its job. 14:11
masak the question reads "Does this mean I can run code on some other machine when someone on that machine reads my documentation?"
KyleHa If that's the case, I can put code in my "documentation" that the reader will execute.
moritz_ then we are not talking about the same question :-) 14:12
but I asked myself the same thing
basically you can execute arbitrary code to render the pod
we'll need *very* good sandboxing.
masak KyleHa: ah! now I understand your question.
KyleHa So, imagine you want to read the docs for my module, and the "reader" starts sending a truckload of spam...
masak yes, that's scary. 14:13
KyleHa Right. I'd rather not have documentation that executes than have to build the perfect sandbox.
masak agreed.
documentation should be seen and not heard. 14:14
KyleHa Yes, exactly.
14:14 alester joined
KyleHa Rakudo release this week needs a name. 14:16
14:16 nihiliad joined
frettled KyleHa: I appear to have understood your question as intended, yay me. :D 14:19
KyleHa++
KyleHa Two out of three ain't bad.
14:19 frettled sets mode: +o KyleHa
KyleHa frettled++ # parsing my overbrevity 14:20
frettled Besides, if you want documentation that executes stuff, use MS Word.
masak "If it worked for MS Word..."
frettled «…and for PDF…» 14:21
bpetering KyleHa: or underprolixity? 14:22
masak does the new S26 specify what happens if a declarator block finds no declarator to attach to?
moritz_ I don't think so
masak I've read the section on declarator blocks, but I didn't find such wording.
also, what if there are two declarators on one line? 14:23
KyleHa bpetering++ # expanding my vocabulary
14:23 frew left
KyleHa I just didn't want to waste a lot of words on a question whose answer was probably 'no'. 14:23
frettled BTW, in case people thought I was joking: you can embed Flash and JavaScript in PDF files.
masak o_O 14:24
frettled We should start lobbying for embedded Perl 6.
mkelly32 frettled: i know. and think that's the source of at least half of the security bugs in acroread... 14:25
frettled mkelly32: mm, especially considering that Adobe is slower at releasing security patchese for Acrobat and Adobe Reader than for the free Flash player plugin. 14:27
Matt-W yes you can, and it's an abomination 14:28
KyleHa Matt-W: Your reply didn't go to the list.
14:29 SmokeMachine left
Matt-W I realised that just as I pressed send 14:30
I'm on a mixture of lists that have reply-to and lists that don't
and remembering which is which drives me nuts
I should check more carefully
14:30 unitxt joined, unitxt left
frettled With GMail, I just hit «Reply to all» and edit if it's wrong, and similarly with Gnus. 14:30
Matt-W yeah I just keep hitting reply 14:31
it's probably because I don't post to p6l very oftne, so I forget
frettled In general, I think that forced Reply-To set to the list is a Bad Thing.
Matt-W what I'd like is gmail to have nice mailing list tools 14:32
so it can say 'reply to list'
frettled It makes it easy to accidentally make public responses that were intended to be private.
Matt-W: yeah, that would be nice.
Matt-W: and maybe a user preference for default behaviour of the Reply link.
a) Respect Reply-To header. b) Always reply to the address in the From header. c) If a mailing list, always reply to the list. (and maybe a few other choices) 14:33
14:34 braceta left 14:37 SmokeMachine joined
PerlJam good morning #perl6 14:38
masak PerlJam: o/
bpetering it's a pleasure reading stuff by TheDamian...
morning PerlJam
I appreciate his sense of humou?r. 14:39
14:42 rfordinal left
PerlJam masak: what's up? 14:42
14:42 unitxt_ left
masak PerlJam: S26 is out, and I'm re-writing Druid to be cutting-edge wrt it, that's what's up! :) 14:43
PerlJam cool!
Does any software grok the new S26 yet? :)
(besides STD)
masak PerlJam: I'm tempted to add #=[...] parsing to Rakudo. 14:44
14:44 Psyche^ joined
[particle] masak: you have nothing to fear but fear itself 14:45
14:46 Patterner left, Psyche^ is now known as Patterner
masak [particle]: thanks for the encouragement. 14:46
PerlJam yeah, but *parsing* is the easy part :)
masak yes, but it's a big step up from not parsing. 14:47
oh! another pertinent S26 question: if declarator blocks are the only ones that attach to nearby declarators, then are the METHOD, SUBROUTINE, CLASS, etc keywords really of much use? 14:50
frettled masak the destroyer strikes again 14:51
masak leans on his sledgehammer
jnthn masak: Useful if you want to write a spec or proposed interface for something that doesn't exist yet.
Of course, you could write stub code to do that...
PerlJam seen pmichaud 14:53
Is there a bot here that will respond to something like that? 14:54
@seen pmichaud
lambdabot pmichaud is in #perl6. I last heard pmichaud speak 3d 17h 59m ago.
jnthn @seen pmichaud
lambdabot pmichaud is in #perl6. I last heard pmichaud speak 3d 17h 59m 3s ago.
PerlJam ah.
jnthn ohnoeswhereispmichaud
14:55 hercynium joined
frettled hopefully enjoying the pleasant aftereffects of a good weekend 14:55
ISTR that he mentioned something about being off for the weekend and returning on Tuesday/Wednesday? 14:56
masak all is fair if you predeclare.
PerlJam frettled: yeah, I seem to vaguely recall something like that too now that you mention it.
frettled masak: how iterative of you
masak jnthn: your point is well taken. but that makes it sound even more like I'd want to use #= and #=[...] for everything attach-y. 14:57
jnthn: and since I have multi-line Pod comments in Druid, that means I _have_ to implement #=[...] parsing. :)
14:58 nihiliad left 15:03 SmokeMachine left, bpetering left 15:04 unitxt joined
masak rakudo: say "OH " #=(pod comment), "HAI" 15:08
p6eval rakudo 0d4fe0: OUTPUT«OH ␤»
masak this now says "OH HAI" on my machine. :) pushing.
15:08 gbacon joined, gdickie joined
jnthn Nice. 15:09
Run spectest? ;-)
masak erm.
I'll get right on it.
jnthn pushes his changes now quickly too, so he can blame any fails on masak's patch instead of his own ;-) 15:10
moritz_ masak-- # thinking about committing without testing first
masak s/committing/pushing/
but yes, masak--
moritz_ right
moritz_ is sometimes still in svn land
svn--
moritz-- # giving lots of negative karma today 15:11
masak karma--
meta--
moritz_ meta++ # likes it
masak @karma meta 15:12
lambdabot meta has a karma of 0
masak @karma karma
lambdabot karma has a karma of -2
dalek kudo: 45c6dd3 | masak++ | src/parser/grammar.pg:
[src/parser/grammar.pg] now parses #=[...]
masak I'm running the spectests! :-O
so far, so good.
PerlJam $employee++ adding "use strict; use warnings;" everywhere they are not. 15:23
$employee-- for filling the disk with warnings.
15:23 zloyrusskiy joined 15:25 carlin left 15:26 szabgab left 15:31 jaldhar left
jnthn Rakudo day tomorrow or Wed. 15:36
masak \o/ in either case 15:37
jnthn I've got a few to catch up on. 15:38
OK, now @otherjob are done for a bit...how did my spectest run end up... 15:40
masak ah -- seems the spectest results are invariant under my latest patch. 15:41
jnthn masak: Can I peek at your results?
masak is it enough if I nopaste the summary?
jnthn yes 15:42
masak gist.github.com/169182
jnthn Thanks. 15:43
moritz_ these are disturbing, because they appear only on some platforms
my last spectest was clean.
maybe something ICU related? 15:44
masak I know one of them is due to no-ICU + a try block.
15:44 eMaX_ joined
masak I submitted an RT ticket about it. 15:44
15:45 eMaX left
jnthn I get a vareity of randoms too 15:45
But I seem to have really broken things as well.
KyleHa I get the failures masak does and t/spec/S32-io/IO-Socket-INET.t too 15:46
masak KyleHa: that one comes and goes, I think.
g'ah, software is hard!
15:47 szabgab joined
moritz_ let's go shopping! 15:47
masak barbiememe++
15:50 nihiliad joined 15:54 cdarroch joined
mkelly32 so, i guess i can't do a match like m:i/Foo/ with rakudo yet, can i? 16:00
jnthn It doesn't support adverbs out front like that, no 16:01
I think maybe you can write 'em inside the regex though.
masak mkelly32: you can do m/:i Foo/
16:03 masak left, szabgab left
mkelly32 hrm. ok. looks like :a isn't implemented yet, though? (or, i'm not understanding it properly) 16:03
moritz_ it's not, afaict 16:04
mkelly32 it looks possibly interesting. is there some unaccent() or something, too?
16:06 szabgab joined
moritz_ no 16:06
ah well, you can achieve that with the 'sameaccent' function 16:07
which is NYI in rakudo
16:13 rfordinal joined
pugs_svn r28012 | lwall++ | [t/spec/S04] change ?: to ??!! 16:24
16:25 arnsholt left 16:28 molaf joined 16:32 helper joined
jnthn thinks he's fixed the Enum.pick regression. o/ 16:35
PerlJam wow, there was an old ternary hanging around after all this time? amazing. 16:36
TimToady no, was new
svn blame if you care :)
PerlJam ah, it was hanging around in someone's brain then :)
moritz_ that was by ben morrrow. Let's forgive him, he's new to Perl 6 ;-)
TimToady okay, if you insist 16:37
moritz_ I didn't svn blame, I just remembered who changes that file
it was more a 'brain blame' ;-)
TimToady nthn 16:38
KyleHa moritz_: You should put that on CPAN.
pmurias ruoso: hi
ruoso hi pmurias
moritz_ KyleHa: it's non-free and not politically correct ;-) 16:39
KyleHa Heh.
TimToady jnthn: you said: One of the annoyances of implementing callwith and nextwith is that in the case of them being used to defer to another method, they need to find and pass on the invocant.
that's why at the dispatcher level, there are no methods, just subs, and the invocant is always the first argument 16:40
jnthn TimToady: Indeed.
TimToady I realize parrot has a different view of reality yet though
jnthn Parrot does consider the invocant as the first argument, that's not so much the issue. 16:41
The issue is knowing whether or not to go and find that.
consider nextwith(1,2,3) in a wrapped sub and nextwith(1,2,3) inside a method.
For the first, you need to know not to bother finding another argument. For the second, you do.
TimToady ah, I see
jnthn The pain isn't in obtaining the invocant to pass one (though yes, I badly stated the problem). 16:42
It's knowing whether we need to.
Sorry for not being more clear.
TimToady but you need the arguments anyway for nextsame, so it's a matter of knowing whether to throw N away or N-1
nodnod
thanks
jnthn Oh, I agree, it's not hard to get at the args. Just knowing what to throw away. :-) 16:43
helper hey need help! having squid but i need to do redirect http for bad site i try this example : pastebin.com/m1786c187 for ex. redirect google to yahoo but in yahoo search when i use google search it redirect back to yahoo something loop occur! how i can fix this thx =)
TimToady helper: I doubt we have any squid experts here, since this is #perl6
PerlJam helper: This is a channel for and about Perl 6, try #perl or #perlhelp
helper thx 16:44
jnthn TimToady: I did hear something along the lines of Parrot maybe trying to move away from invocant as the first arg, but I'm hoping that idea has been dropped.
jnthn should check at #ps tomorrow about that 16:45
PerlJam join #parrotsketch tomorrow and query the parrotcabal
TimToady allison seems to think parrot can have it both ways, but I'm not so sure
jnthn Hmm. 16:47
I'll be curious to hear how.
PerlJam How would the invocant be passed if not as the first arg?
jnthn PerlJam: Out of band I guess.
moritz_ in a register?
TimToady well, in other languages the invocant is often much more magical
moritz_ there are infinitely many ugly ways of doing it ;-) 16:48
TimToady and doesn't need to participate in binding for a typeless language
but faking a contiguious arg list is going to be harder than faking a separate invocant, I expect
jnthn Aye.
16:49 zamolxes left
jnthn Ah well, will discuss with allison++ what she's thinking before jumping to any conclusions. 16:49
TimToady just my impressions from phone call several weeks ago
could be offbase
jnthn Rakudo is going to need to make a call soon on how to proceed with signature binding, though. 16:50
jnthn would much prefer to build on top of what Parrot provides than work around it. 16:51
TimToady jnthn's preferences++
16:53 helper left
jnthn TimToady: One other issue I'd like to push onto your mental stack... 16:55
...is how the dispatcher knows what methods on a role should *not* result in it being punned and the method called on the pun.
I'm thinking things like .perl, .ACCEPTS, etc.
At the moment I just have a do-not-pun list. 16:56
Which will do fine for now, I guess, so I'm not blocking on an answer.
It's just one of those things that I've done, but it doesn't feel quite right (the "no list of things to remember" rule...) 16:57
TimToady .ACCEPTS potentally has the :U vs :D distinction, but in general it might be some marker on the invocant. "is ref" maybe?
jnthn I don't think :U / :D helps us here. 16:58
TimToady but "is ref" seems to imply "don't assume any semantics"
jnthn role Foo { method bar { "lol" } }; say Foo.bar; say Foo.perl;
16:58 szabgab left
PerlJam What's :U /:D ? 16:58
TimToady method perl ($self is ref:)
moritz_ PerlJam: undefined/defined, presumably
16:59 szabgab joined
jnthn In this case I'm making both calls on the role-object, but expect the first to pun and the second to not. 16:59
TimToady See S12/Abstract vs Concrete types
the first one doesn't declare the $self as "is ref" 17:00
maybe
jnthn So we make a distinction based upon if the invocant is makred is ref?
I'm struggling to work that through my brain
(From a, why does this make sense perspective, not an implementation one.) 17:01
TimToady dunno, it's more like some methods are coercing their invocant
pmurias ruoso: what things do we need to add an RI to in smopp5?
jnthn Hmm. That's a curious way of looking at it. 17:02
TimToady it's kinda like autoviv, and "is ref" suppresses any autovivificaiton
ruoso pmurias, supposedly it should be able to behave like a Perl 6 object
17:02 kidd` joined
TimToady but maybe we just need a new ref-like property for punning 17:02
jnthn I'd not really been seeing it as a signature-bind-time decision.
But more as a dispatch time decision.
17:03 M_o_C joined
TimToady I was just thinking that the invocant was the proper place to hang that info 17:03
pmurias ruoso: so what do we need to add an RI to? SV*, interpreter
jnthn But your suggestion makes more sense to me now I see where you're coming from.
TimToady not that binding enforces it
17:03 justatheory joined
jnthn Well, it's a coercion on the level of an "as" in some senses? 17:03
That is, instead of just bidning what we were passed, we do some work on it (in the case of a role, pun it) and bind the result. 17:04
TimToady it's like the default is that we allow an invocant to be no more abstract than a class, and a role is even more abstract than usual 17:05
jnthn I was thinking more in terms of coercion than what's allowed here, but I guess we could easily cater for both.
pmurias ruoso: you have noticed that the smop files are included in the build process?
jnthn Or the default if you don't specify what you want is the coercion?
And you use :U, :D and :P or something (Punnable, but mostly for the smiley win). 17:06
...if you want to say "I only accept these things and give them to me as is".
TimToady it's like the role says: you may not dispatch on me directly without this extra magic 17:07
ruoso pmurias, we need to add RI to every p5 value that might be available to SMOP
jnthn Right.
I think there's something in this. 17:08
It's a rather different solution to the kind I was expecting, but I like it.
TimToady whatever looks simplest
I suspect the solution you come up with will be fairly universal in semantics
and if we need :P or "is foo" we can do that 17:09
well, :P is backwards, since punnable is the default
jnthn Yeah, I know.
17:09 PZt left
jnthn It just goes well with :D ;-) 17:09
TimToady it does indeed :)
jnthn Pun-free. 17:11
TimToady but decorating the type name may be the wrong place; it probably makes more sense on the invocant container 17:12
jnthn method perl($self:D:) { } # woo colon fest 17:13
TimToady illegal anyway, since :D attaches to the type name, not the container 17:14
:D and friends are essentially subset types
jnthn I was doing on your "decorating the type name may be the wrong place..." :-)
*going
17:15 yath left, yath joined, mookee left 17:16 hercynium left 17:18 yath left, pancake joined 17:19 szabgab left, yath joined
pancake does perl6 supports things like if (..) bla? (without brackets if only one action depends on the conditional?) 17:19
17:19 szabgab joined
pancake and without using post conditionals 17:19
PerlJam pancake: no
TimToady no
17:20 yath_ joined, yath left, yath_ left
TimToady but the parens are optional because the braces aren't :) 17:20
pancake is there a reason for this?
PerlJam pancake: but you don't have to put parens around your conditional if that makes you feel better :)
dalek kudo: b60cef0 | jnthn++ | build/PARROT_REVISION:
Bump up Parrot revision we require to one that doesn't segfault the build on various platforms.
kudo: 17c4b9d | jnthn++ | src/ (2 files):
Make .HOW on a role give back the metaclass, rather than pun the role and give back the metaclass of the punned class. Correcting this also required fixing something that relied on the old broken behavior.
kudo: d77baf0 | jnthn++ | t/spectest.data:
Add S14-traits/package.t to the spectests.
kudo: 2f177d4 | jnthn++ | :
Merge branch 'master' of [email@hidden.address]
TimToady the braces are much more meaningful insofar as the are always closures in p6
the parens are basically meaningless 17:21
so it's better to keep the braces and throw away the parens
pancake but looks tedious to write them if only one action is given
TimToady two extra characters. if it were BEGIN...END you'd have a better argument :)
pancake if $foo { ... } else die "argh\n" # for example
TimToady missing semicolon 17:22
pancake missed the semicolon
:P
TimToady but that's another reason
the closing brace will supply that missing semi for you
if it's at the end of the line
so now it's down to 1 extra character in general
17:22 zamolxes joined
TimToady and if it's *not* at the end of the line, you really need the extra braces for clarity in any case 17:23
much easier to see matched braces then scan for a little semicolon
pugs_svn r28013 | jnthn++ | [t/spec] Unfudge some tests that Rakudo had regressed on.
TimToady and Perl 6 is not about repeat the mistakes of C, in any case :P
pancake yep, but brackets are necessary for this kind of constructions, and i dont see any reason to keep them, well its a personal taste
TimToady *repeating
17:24 M_o_C left
TimToady it's just a bad habit from C. :P 17:24
pancake i like such constructions O:)
TimToady yes, well, it's an addiction, but there are programs to help :)
pancake many other langs permit this too
haha
PerlJam pancake: have you heard about the water bed theory of language design? :) 17:25
TimToady many other languages are not trying to do what Perl 6 is trying to do :) 17:26
dalek kudo: 06d27c0 | jnthn++ | src/pmc/p6opaque.pmc:
Re-work the decision process for punning. Un-regresses Enum.pick.
pancake PerlJam: nope, any url?
wikipedia helps in this case 17:27
ok. i get it :) 17:28
TimToady it's one of those places where we make a small imposition on the user and get a lot of benefit out of it in various other places 17:29
similarly, we never allow two terms in a row, but this makes it easy to detect many kinds of syntax errors 17:30
17:30 [particle]1 joined
moritz_ except when we do, of course ;-) 17:30
TimToady we require whitespace in certain spots to distinguish infixes from postfixes, and builtin declarators from functions
moritz_ for @list { block } # here @list and { block } are two terms in a row, no? 17:31
TimToady in a sense, though actually it's treating that as a terminator for the expr
since the statement controls are special syntax 17:32
could make the same argument for "use Foo <a b c>"
moritz_ you can always talk it the way you prefer it ;-)
pancake yeah takes sense 17:33
TimToady the main point is that you shouldn't add a juxtaposition operator unless you have some other way of "clocking" the parse
PerlJam TimToady: and that's why map now requires the comma?
TimToady the authors of awk regretted using juxtaposition for concatenation
map used to be a special form, so it could get away with it
now the first arg is just a normal argument 17:34
and the parser has no idea it's special, because it isn't
17:34 [particle] left
PerlJam (fewer special cases)++ anyway 17:35
TimToady we've tried to remove all these special special cases, and replace them with general special cases :)
like {} is always a closure
PerlJam #`{ except when it isn't :-) }
TimToady (at least in the abstract)
q{indeed} 17:36
pancake :) 17:37
PerlJam Perl 6 does a *really* good job of managing the programmers' expectations.
TimToady though I tend to encourage people to use q[indeed] for such nowadays for that reason
"these aren't the special cases you're looking for" 17:38
17:39 xinming left
TimToady the reason we've been playing with STD for the last year or so is to figure out whether we actually have enough "special sauce" in the grammar to tell the user where they went wrong in a helpful way 17:39
17:39 xinming joined, hah joined
TimToady it's really a failure of design if we have to give up and say "Syntax error" 17:40
moritz_ std: +++
PerlJam would that other langauges has such a standard
p6eval std 28013: OUTPUT«===SORRY!===␤Preceding operator expects term, but found infix + instead at /tmp/8O1nK0KbKn line 1 (EOF):␤------> +++⏏<EOL>␤ expecting any of:␤ noun␤ prefix or meta-prefix␤ standard stopper␤ term␤ terminator␤ whitespace␤FAILED
..00:03 40m␤»
17:41 jaldhar joined
TimToady we don't always get it quite right, of course :) 17:41
moritz_ why does it complain after the third +, not the second?
does it parse that as two prefix, prefix:<++> and prefix:<+>? 17:42
TimToady it's sort of 50/50 whether it puts the eject symbol before or after the error
17:43 pancake left
TimToady it got to that error message by a process of failing to parse + as a valid term 17:46
that particular error message is a very defaultish method, so it's often inaccurate 17:47
the misplaced ⏏ is because it parses <infixish> to see if it should say that message, or default to "Confused" 17:48
so we should probably put infixish in a lookahead
dalek ok: 81b3238 | (Hinrik Örn Sigurðsson)++ | (2 files):
Use \Q on the substring we're trying to match
17:56
ok: 403ad45 | (Hinrik Örn Sigurðsson)++ | (2 files):
Added (simplified) parsing of some u4x terms
18:01 jan_ left
pmurias ruoso: one way we could run p5 code before we load Coro would be to load it in a special "first use of p5" continuation 18:06
18:07 rfordinal left 18:10 kidd` left 18:14 jan__ joined
pugs_svn r28014 | moritz++ | [t/spec] unconfuse Pod 18:14
colomon Just got done reading the backlog for today. Where is the new S26 people are talking about? It doesn't seem to have hit the Pugs repo or perlcabal.org... 18:16
18:18 hercynium joined
moritz_ colomon: it's an attachment on the p6l mailing list, there's also a copy on moritz.faui2k3.org/tmp/S26-documentation.pod 18:19
jnthn colomon: Attached to Damian's post on p6l
colomon moritz_++ jnthn++ Thanks!
18:22 Front_slash left, japhb left
mikehh make spectest FAIL - 3 files - t/spec/S12-enums/thorough.rakudo - Failed test: 2 18:24
t/spec/S32-hash/keys_values.rakudo & t/spec/S32-num/polar.t syntax errors 18:25
Syntax error at line 13, near "=> 2, c =>" in the first and Statement not terminated properly at line 14, near "{\n my ($" in the second 18:26
moritz_ mikehh: svn up 18:27
mikehh was at 28013
will try again
moritz_ jnthn: t/spec/S12-enums/thorough.t test 2 seems to be a regression 18:34
jnthn moritz_: Gah. 18:35
moritz_ the others were mostly POD confusions
commented out pod 18:36
that masak++'s pod patch made explode
mikehh ok just 1 failure t/spec/S12-enums/thorough.t test 2 18:39
18:41 PacoLinux left
jnthn I may just fudge that one. 18:43
18:43 PacoLinux joined
jnthn Winning back 4 tests for un-regressing Enum.pick was probably a bigger overall win. 18:43
18:44 japhb joined, masak joined
jnthn lolitsmasak 18:49
\o/
masak ...with a weak neighbournet wifi connection. buyer beware.
moritz_ oh hai masak
18:49 tak11 joined
masak oh hai. 18:50
I've been swimming, and going to and from the swimming hall in pretty decent rain. so I won the 'How Wet Can You Get?' contest today. 18:51
wolverian I read that 'dwimming' 18:53
moritz_ has been riding home by bike in pouring rain 18:54
wolverian had an interesting image of masak there
PerlJam wolverian: He's probably been dwimming too :)
jnthn wishes it would rain here. Heavily. With a big thunderstorm.
masak depends on who it is that means.
jnthn Then it might be a tad less muggy...
wolverian PerlJam: I wish I would do what I mean to more often... 18:55
jnthn tests his patches for completing is hidden and trait_mod:<hides>
omgiforgottoeat
PerlJam jnthn: We've been months here with very little rain (we were going on 50 days without *any* rain but then it rained for approximately 5 minutes)
jnthn Yeahwell, I'm British and used to rain all day every day. ;-) 18:56
19:02 jferrero joined
jnthn rakudo: die "E_OUT_OF_BEER"; CATCH { say "going to store, bbs" } 19:03
p6eval rakudo 0d4fe0: OUTPUT«going to store, bbs␤E_OUT_OF_BEER␤in Main (/tmp/QGHTSTx4Ha:1)␤»
19:05 dakkar left
masak so the CATCH block re-throws the exception? 19:07
moritz_ yes. It should not.
masak ah. 19:08
19:09 szabgab left
szbalint rides the terrain in a train 19:12
masak is bitchin' in a kitchen 19:13
19:19 molaf left 19:21 szabgab joined
ruoso pmurias, I even think we can, as nothingmuch said, canibalize save_perl and use it directly 19:25
masak moritz_: oh, so my Pod patch did cause explosions? sorry about that. :/ 19:30
moritz_ ah well, deleting a few # characters didn't hurt all too bad ;-) 19:31
masak still, a bit sloppy of me to miss them...
jnthn At least your explosions are increasingly spec conformance. ;-) 19:32
Unlike mine today.
moritz_ well, it's not yet committed.
19:33 Aisling_ left
masak looks at moritz_' commit 19:34
19:34 [particle] joined
masak ah, that would be what breaks. of course. 19:34
frettled I'm a bit disappointed with myself, I haven't broken anything yet. :) 19:35
jnthn cooks and makes spectest again
masak frettled: try harder! :)
frettled jnthn: following a recipe only in the second case? :D
masak: that's not valid java syntax ... oh.
moritz_ frettled: first submit many good patches, and get a commit bit
19:35 tak11 left
moritz_ frettled: then it's easier to sneak in breakages 19:35
frettled good point.
and first first I need to find the time to learn enough to know what to patch and how :D 19:36
19:36 tak11 joined
frettled is working on that, slooowly. 19:36
2010 will probably be a good year.
masak frettled: if you don't break enough things, we'll be building up an excess of forgiveness. and forgiveness tends to grow stale with time, at which point one has to throw it away unused.
19:38 jferrero left
frettled good point. 19:38
masak anyone here know Japanese? I wanted to make some nice green tea, but the instructions on the bag are in Japanese only. 19:40
19:41 mkelly32 is now known as pioto, pioto is now known as mkelly32
jnthn wonders how big his forgiveness stash is 19:44
19:44 tann joined
masak jnthn: maybe that's what happens when communities scale up! people bottom out on their forgivness stashes! 19:44
tann howdy, perl6ers? 19:45
19:45 tlb joined
masak greetings, tann? 19:45
tann how do you make that '*masak is getting a tea' ? :)
frettled masak: which kind of Japanese tea? 19:46
moritz_ masak: is the PIONEER file in the proto repo up to date?
masak moritz_: I think so. why?
frettled: I'm pretty sure it's green tea.
frettled masak: sencha or ...?
moritz_ masak: I'm about to pioneer SVG::Template to be protoable
erm, SVG::Plot 19:47
frettled masak: en.wikipedia.org/wiki/Sencha
common for most green teas that I know about: boiling water is wrong.
masak frettled: I haven't opened that bag yet. but on the outside, it says 煎茶.
frettled: says 70 - 90 degrees centigrade. 19:48
19:48 [particle]1 left, jferrero joined
masak frettled: a few other figures are in latin script too. 19:48
frettled masak: that's sencha, yes. Follow the instructions in the WP article :D 19:49
masak :)
frettled++ # pragmatic
19:50 hah left
masak 1 minute. ah, so the '60' in step three is probably number of seconds to steep. 19:50
19:50 szabgab left
moritz_ masak: ok, svg-plot is ready for proto - will you add it, or should I send a patch? (feels kinda silly for three lines) 19:50
masak moritz_: you have commit rights to proto.
moritz_: but I can add it, if you want. 19:51
moritz_ oh, I do? 19:52
then I can push myself, I guess ;-)
frettled masak: if you don't have a water heater with temperature control, you can fudge the temperature by pretending that e.g. mixing 25% water @ 20 C and 75% water @ 100 C will be 320/4 ≃ 80 C
masak moritz_: I happen to know you do, because I've added all project owners as collaborators to proto. seemed more practical that way. :)
frettled: I'll do that. sounds fun. 19:53
and shouldn't be very far off from the truth either.
moritz_ masak: ah, ok. It would be very practical if github showed me a list of all projects I have commit access to ;-)
frettled masak: just remember to prepare the water temperature before involving the tea leaves :D
masak frettled: I'll keep that in mind. :)
frettled masak: yep, that's what I do at work.
masak moritz_: agreed. perhaps something to ask about in #github? 19:54
moritz_ aye
pushed. 19:55
masak moritz_++ 19:56
moritz_ masak++ # making PIONEERing *very* easy
masak that's the idea. :)
moritz_ I had to add one single line to my repo.
(and even that was mostly optional, because of my weird dependencies ;-)
masak goes to check on moritz_' project 19:57
moritz_ the module does not depend on SVG.pm, it merely generates data structures for SVG.pm to consume
only the examples use SVG.pm 19:58
so I declared a dependency on it, just to be nice
19:59 Aisling joined
masak gets distracted by tea-making 20:03
20:04 tlb left
masak moritz_: you forgot a colon in projects.list... 20:08
moritz_: ...but I forgive you. :) fixed.
masak sips his sencha 20:10
moritz_: nice code. 20:15
moritz_ masak: thank you. 20:16
masak waitwait, Rakudo already does !private methods?
masak didn't know
moritz_ I just don't know how to test such a module :( 20:17
masak and I'm increasingly confused about the difference between submethod, my method and method !private...
frettled masak: if you live near a "Le Palais des Thés", I can heartily recommend that you purchase your tea there. If you like citrus flavour, my favourite is "Wu Long 7 agrumes", which also makes an excellent iced tea.
moritz_ masak: 'my method' is the outdated idiom for 'method !private', afaict
masak: and submethods are not private 20:18
PerlJam submethods are protected ;)
moritz_ not in the C++ sense
masak frettled: I have seen no "Le Palais des Thés" in the vicinity, unfortunately; nor anywhere else as far as I can remember.
PerlJam no, not in the C++ sense, but they fit the ecological niche that C++ was aiming at but missed. 20:19
20:19 hercynium left
masak moritz_: you're saying 'my method' is no longer permissible? 20:19
moritz_ std: class A { my method foo { } }
p6eval std 28014: OUTPUT«ok 00:02 37m␤»
moritz_ masak: not sure, but it might not do what you expect
masak seems we still have three forms.
moritz_ because 'my' confines to the lexical scope 20:20
'method !foo' doesn't
just to the class, not to the lexical scope
which can be different when 'augment'/'is also' is present
frettled masak: there is at least one somewhere in Sweden
masak oh!
frettled: I'm not going out to look. it's raining, and I just got inside! :)
besides, Sweden is HUGE. 20:21
I might wander for a week and still not find it.
frettled masak: hee-hee 20:22
masak: GIYF 20:23
masak & 20:25
20:30 takadonet left
jnthn back 20:31
frettled \o 20:37
masak frettled: GINMF in this case, it seems. 20:40
20:41 breinbaas joined
frettled masak: www.palaisdesthes.com/en/ 20:41
20:43 wido joined
masak frettled: no, I don't see one in Sweden on their list of 19 stores. 13 in France, 2 in Belgium, 1 in Ireland, 2 in Norway and 1 in Japan. and that's it. 20:45
masak is really glad he didn't go outside to look now
jnthn Meh, Norway ain't so far. ;-) 20:46
masak good point.
frettled masak: and you have crash space at my place if you want. 20:47
masak \o/
jnthn masak: Google says you can walk in only 4 days six hours.
frettled jnthn++
masak jnthn: maybe if I didn't stop to eat or sleep. 20:48
I have to check out those walking instructions. "Take a left at Jönköping..."
frettled hahaha
jnthn lol there's a place along the way called Fycklingevägen 20:49
masak that's a cute name. wonder what a fyckling might be. 20:50
jnthn is fyckling with Rakudo. 20:51
Hmm, it has quite a nice ring to it.
masak certainly better than 'beavering' :) 20:52
jnthn Dialects. Who'd have em. :-)
frettled hehe 20:53
*rubs magic lamp, summoning genie* My first wish is that lazy lists work. 20:54
;)
jnthn waits for pmichaud to emerge from the lamp 20:58
dalek kudo: 15abd0f | jnthn++ | src/pmc/p6opaque.pmc:
Complete implementation of 'is hidden' so it actually influences deferal.
20:59
kudo: d66f569 | jnthn++ | src/pmc/p6opaque.pmc:
Fully implement hides trait modifier's semantics.
frettled Perhaps stating the wish before the genie appears isn't so clever.
21:00 hercynium joined
masak someone should write a guide to safe lamp-rubbing and genie utilization. 21:01
moritz_ rakudo: 1 ?? a => b !! 3
p6eval rakudo 0d4fe0: OUTPUT«Could not find non-existent sub b␤»
masak no barewords in Perl 6... 21:02
um, well, except for that hash key. :/
moritz_ had a different parse error for a simar thing
Ternary error at offset 1279, found '='
in Main (src/gen_setting.pm:3390)
pugs_svn r28015 | jnthn++ | [t/spec] Some tests for trait_mod:<hides> and is hidden.@ 21:03
21:03 zloyrusskiy left
jnthn Oops, extra bonus character in commit message. 21:03
masak thinks @ works very well as a bonus character 21:04
dalek kudo: 55c5fa1 | jnthn++ | src/pmc/p6opaque.pmc:
Corrections to the last patch, which broke a couple of spectests.
21:05
moritz_ moritz.faui2k3.org/tmp/out.svg the first bar and the and the text 'the' is clickable 21:06
generated by Perl 6, of course ;-)
masak moritz_++ 21:07
moritz_: p'haps right-alight the Y axis labels?
s/alight/align/
moritz_ masak: perhaps ;-) 21:08
I need to read more of the SVG specs first, I fear
masak moritz_: www.w3.org/TR/SVG11/text.html#TextA...Properties 21:09
pugs_svn r28016 | fglock++ | mp6 update
frettled moritz_: the clickability seems slightly flawed in Firefox 3.5.2 on Ubuntu, the cursor flicks between text marker and hand. 21:11
Hmm, clicking once seemed to resolve the problem.
Perhaps Firefox isn't good at SVG yet. I mean, it has just barely made the step up from disastrous. 21:12
moritz_ frettled: it seems to mostly work on ff 3.0
frettled moritz_: ah, well, 3.5.x has been nothing but grief for me under MacOS X, so why not place this in the same blame bin :) 21:13
moritz_ frettled: but I know that svg support in most browser is somewhere between abysimal and bad
frettled Opera is fairly decent.
Whenever I wanted to look at an SVG, back when Firefox would attempt to use infinity CPU and whatnot in order to _not_ display the SVG it was asked to, I used Opera as a work-around. 21:14
moritz_ inkscape is incredibly useful when debugging SVG 21:15
frettled newfangled stuff! 21:16
moritz_ because it shows drawings outside the canvas
masak Inkscape++
moritz_ indeed
sadly it takes about 25s on my machine to start up
masak I usually use it in the other direction as well -- I draw something in Inkscape, and then reproduce the same SVG programmatically using Perl. 21:17
pmichaud good evening, #perl6
phenny pmichaud: 14 Aug 05:53Z <japhb> tell pmichaud I'm thinking of writing the Parrot module install tool in NQP -- or rather, write it in Perl 6 using the subset that NQP will support around the 2.0 time frame or so, with the intent of being able to use NQP to compile it when 2.0 ships. Do you have an updated list of the features you expect NQP to support around that time? Is this even reasonable?
moritz_ sometimes I do that too
pmichaud phenny tell japhb yes, using NQP for the Parrot module install tool sounds very reasonable 21:18
frettled pmichaud \o/
pmichaud phenny: tell japhb yes, using NQP for the Parrot module install tool sounds very reasonable
phenny pmichaud: I'll pass that on when japhb is around.
frettled where do I rub?
masak lolitspmichaud 21:19
pmichaud yes, just heading home from my trip to rhode island 21:20
jnthn Oh, nice. :-)
Hope it was an enjoyable trip.
masak frettled: since pmichaud is already here, no more rubbing is necessary. duh. 21:21
.oO( maybe I should write that guidebook. )
japhb pmichaud, cool, thank you. So is there a feature list for NQP around the Parrot 2.0 time frame? 21:23
phenny japhb: 21:18Z <pmichaud> tell japhb yes, using NQP for the Parrot module install tool sounds very reasonable
japhb thx, phenny
masak phenny: you're one of the more decent bots I know. 21:24
phenny++
japhb phenny++ # agreed 21:25
21:26 Whiteknight joined
frettled pmichaud: is it bad of me to say that lazy lists are very desirable? :) 21:26
moritz_ ok, now I have this wierd situation that I use text-anchor="end" in two plots, and it works only in one ;-) 21:28
oh noes, I know what I did... 21:29
not.
masak clearly, that's a Sherlock Holmes situation. 21:32
japhb Hmmm, I appear to have missed the short window of pmichaud's in-channel time. Ah well,
pmichaud frettled: yes, lazy lists are high on my priority list
japhb phenny: tell pmichaud cool thank you. So is there a feature list for NQP around the Parrot 2.0 time frame?
phenny japhb: I'll pass that on when pmichaud is around.
japhb oh. 21:33
masak :)
japhb Damn failure to be omniscient.
pmichaud sorry, I'm at the airport and working on about four things at once
phenny pmichaud: 21:32Z <japhb> tell pmichaud cool thank you. So is there a feature list for NQP around the Parrot 2.0 time frame?
pmichaud NQP always aims to be minimalist in many respects... we don't add features "just to add them"
japhb pmichaud, no excuse! Just grow a couple more arms!
frettled pmichaud: we're just happy you're here
pmichaud so if there's a feature you need for 2.0, we can see about adding it
japhb pmichaud, sure ... but ISTR that you had stated there were going to be several more. I was only going to request the delta between your plans and what I ended up needing. :-) 21:34
pmichaud that said, I expect NQP to support grammars, regexes, and interpolation by 1.7
japhb pmichaud, still a binding-only language?
pmichaud by 1.8 I would hope that NQP supports non-PMC register types. There's a good chance that will happen by 1.7
yes, I'm planning to keep it binding only, since Parrot doesn't really have good assignment semantics yet
japhb excellent (to non-PMC registers) 21:35
pmichaud that could be revisited if we need it to be
masak japhb: it sounds like a cool project.
pmichaud wait, tomorrow's release is 1.5, yes?
japhb pmichaud, yes.
pmichaud then bump my targets up by a minor release
i.e., 1.6 and 1.7
japhb masak, a little birdie tells me you have a little experience with this. ;-)
pmichaud, double the excellence. 21:36
I didn't expect it that soon, and I'm very happy to hear it.
masak japhb: phaw, I only did the stupidest thing that could possibly work. :) suddenly everyone thinks that I know these things.
pmichaud if I don't have regexes in the next month or so then I'll be way behind on some of our other targets
masak japhb: that said, I like to follow the progress of those who try new, similar things. 21:37
japhb masak, ... and in the process, you probably discovered the lower bounds of complexity. That's very useful information.
pmichaud afk, dinner... I may be back around in an hour or so
moritz_ thanks to masak++ my charts are now even prettier
masak japhb: ask moritz_. he made his Perl 6 project proto-compliant today. the lower bound of complexity for him was one extra line of information in his repo. 21:38
21:38 wido left
japhb masak, I have been imagining proto as a prototype of a subset of the Parrot install toolchain. 21:38
masak, that's pretty low. :-)
moritz_ the text-anchor and dominant-baseline attributes rock.
21:39 frettled sets mode: +oo masak japhb
masak moritz_: they do indeed. 21:39
japhb: let me know how that goes. the sooner we can replace proto with something real, the better.
japhb: and I must say that writing an application in NQP sounds... intriguing.
japhb masak, will do. It will probably have to wait until August is over; immovable $work deadlines. 21:40
masak gotcha.
just be sure to Release Early after that. 21:41
japhb masak, I will probably just do it on github or gitorious from step 0.
It will eventually have to move into the parrot repo ... but SVN sucks too much. 21:42
I can't even bring myself to git-svn anymore.
masak yes, funny how that works. SVN didn't suck nearly as much in 2007.
moritz_ it did, we just didn't know it ;-) 21:43
masak now that I've learnt git, SVN sucks more than I ever thought it could.
moritz_: it's a bit like the point of my yet-unpublished Druid refactoring blog post: looking back, my code was unforgivably tangled before the refactoring. but that's the point of a refactor, to make things neater. 21:44
japhb masak, oh heck, when I first started using it, it was a godsend ... "What, you mean I can stop using CVS just so I can be Windows-compatible?!? YEE-HAW!" But I was on SVK as soon as it came out, because I had been spoiled early by p4, and SVN just wasn't as nice as that.
But SVK ate my repos a couple times, and that was the end of that. 21:45
masak I'm too young to have used CVS for my own projects, and SVK never sucked me in enough for me to learn all the strange new subcommands.
japhb SVK could have been Good Enough for a while, if it had been rock solid. 21:46
masak quivers to think what Linus would have had to say about SVK 21:47
moritz_
.oO( cover your ears )
21:47 KyleHa left
japhb applies serious chocolate to the "concentrating on brain-melting billing software" task 21:48
moritz_ recommends closing IRC for concentrating on brain-melting stuff 21:50
japhb I'm addicted to the occasional message in my direction. It's like a slot machine. You may be feeding quarters to the machine all day, but when you get the cherries, your endorphins flow like you never lost. 21:52
moritz_ ;-) 21:53
japhb++ # nice description ;-)
japhb The good thing is that I *can* ignore IRC when I'm not being pinged. The same can't be said for Perl blog feeds. ;-)
21:57 szabgab joined
moritz_ masak: do you happen to have any code that precomputes lengths of text elements in SVG? 21:57
masak moritz_: that, for me, is the Holy Grail. 21:58
moritz_ masak: or do you have any other approach to the problem of not knowing in advance how much space to allocate for text?
sjohnson speaking of IRC, has anyone here written their own irssi / weechat perl plugin?
masak I've run into dozens of situations where I want to do that.
21:58 gdickie left
masak moritz_: the problem can often be circumvented by using <span>...</span> and transparency. 21:59
but not always.
moritz_ care to elaborate?
masak sjohnson: you mean "perl 6" plugin, surely?
moritz_: well, let's say I want slides that progressively show some text.
moritz_ that you could solve with clipping, I guess 22:00
sjohnson masak: :)
masak moritz_: yes, or with <span />, if I want to unhide word-for-word, say.
22:01 ruoso left
masak moritz_: mberends once hinted that Adobe has tables with widths of characters for different fonts and sizes, that can be used to compute the width of text. sadly, that was the day before my NPW talk, so I didn't have time to persue that lead. 22:01
22:01 Limbic_Region joined
sjohnson you know how most *nix come with Perl 5? do you think sooner or later, they will include a chosen popular Perl 6 implementation, or multiple? 22:02
masak sjohnson: later.
moritz_ well, once you have a decent estimate you use textLength to match your expectation with that of the renderer 22:03
sjohnson 'later' eq 'worry about it later?'
moritz_ but if your guess is too far off, you get ugly strechting artifact
masak sjohnson: no, between 'sooner or later', I believe they'll include it later. 22:04
moritz_: it might be the green tea talking, but this sounds like a nice task for a supervised genetic algorithm. :)
22:05 alester left
masak moritz_: more seriously, if you wanted to compute your own tables, you could probably easily make a grid in Inkscape, and then jot down how wide all of the letters, numbers, and common punctuation marks are in some font and size. 22:06
or you could try and find those Adobe tables mberends mentioned.
moritz_ sighs 22:07
that's the price you pay for not talking to the renderer directly, I guess
assembling tables myself for 64k Unicode chars or so would be too much work. 22:10
masak aye. 22:16
moritz_ if I understood awk, maybe this would help me: www.math.utah.edu/~beebe/fonts/afm-...istics.awk
masak the basics of awk are simple. a program is made up of lines with '<condition> { <code> }' pairs. 22:18
huf plus function definitions 22:20
i always thought awk was the nicest of the sh/awk/sed triumvirate
masak the lack of a condition (as in the second line in that program) means that the block of code is unconditionally run.
oh, by a long shot. 22:21
but that awk program is clearly wanting to be a Perl program. :) it even has a subroutine called 'report()' :)
22:22 Whiteknight left
moritz_ discovers Font::TTFMetrics and tries it out 22:22
japhb
.oO( Oh Perl 5, why can't you be Perl 6? )
22:27
masak japhb: there's this Perl6:: namespace on CPAN... 22:28
japhb: ...and MooseX::Declare...
22:28 Whiteknight joined
japhb
.oO( "I can't help it dear -- it's not you, it's me. I've ... been with Perl 6, and now I'll always be thinking about her when we ... program together." )
22:29
masak japhb: ...and Perl 5.10...
I would say Perl 5 does its best to be Perl 6.
moritz_ well, Font::TTFMetrics seems to work nicely for true type fonts
japhb masak: ... so ... many ... jokes ....
22:29 jferrero left
moritz_ now I "only" have to press it into some kind of form that allows efficient (!) reading with Perl 6 :/ 22:30
masak moritz_: CSV! 22:31
moritz_ masak: you forgot about the "efficient" 22:32
masak moritz_: why the sudden need for efficiency?
moritz_: if that's your goal, I think eval(slurp(...)) is your best bet.
moritz_ masak: because 65k chars by 681 ttf fonts (on my system) are too much to handle inefficiently 22:33
hm, write a Perl 6 module, compile it to PIR... that might be an option
masak moritz_: ooh, and a niche market! 22:34
Data::To::PIR
22:34 nihiliad left 22:35 jferrero joined
moritz_ anyway, not before a few hours of sleep! 22:35
TTFN, and have the appropriate amount of fun
masak ditto.
22:35 masak left 22:39 sevvie joined 22:44 ascent left 22:46 ascent joined
s1n moritz_: i wasn't installing, just did a make and wanted to execute it from somewhere 22:51
moritz_: do i have to install rakudo to be able to use it outside of the git repo directory? 22:52
(that would be new to me) 22:53
jnthn s1n: You do now, yes.
(Since changes to allow Rakudo to build against and installed Parrot, and also to make it possible to install it itself.) 22:54
jnthn looks through the pcc changes and is happy to see we appear to be using varargs less.
s1n jnthn: but i can't execute the perl6 exe outside the repo dir unless i install it?
that seems a bit.... wrong?
jnthn s1n: Correct.
s1n jnthn: is that true even if i use --gen-parrot? 22:55
jnthn I believe so, yes.
s1n odd, why is that?
jnthn I don't think make install is too big a deal though.
s1n no, just a change in how i was doing things 22:56
jnthn I'm not quite sure, it's just The Way Things Are since the installable branch landed.
Maybe we can lift the restriction in the future, I don't know.
s1n i don't see a prefix option to Configure.pl 22:57
only for parrot
jnthn Hmm. I wonder where it installs to...
s1n hah
22:57 kent\n left, kent\n joined
jnthn s1n: Well, I can answer part of that - things like perl6_ops.[so|dll] will want to go into the Parrot dynext install directory. 22:58
22:58 pmurias left
jnthn It's possible it'll just install it alongside Parrot. 22:58
s1n does that tell me that nothing is installed outside the repo/build folder?
jnthn If you used --gen-parrot, I'd imagine that is the case, yes. 22:59
AFAIU. :-)
s1n i might have to fire up sandbox, i don't feel comfortable doing a make install
DESTDIR=$RPM_BUILD_ROOT?? 23:01
i don't see a definition for DESTDIR in the Makefile
jnthn I just did make install here 23:03
It put the perl6 binary alongside the installed Parrot one, and other stuff in other Parrot folders.
s1n parrot_install? 23:04
jnthn Yes.
Everything I can see it copied, was copied under there.
This was using --gen-parrot.
So you can nuke that directory by the looks of it and the install is cleared up.
jnthn can't help but point out that a more standard Parrot install on Windows, unlike the one on Linux, doesn't scatter stuff all over the place. ;-) 23:05
s1n well, none of this is standard for linux though 23:06
i normally expect a configure script that lets me specify a prefix to install and miscellany --with-* options that allow the build to _expect_ things to be available 23:07
jnthn Well, I suspect Rakudo's make install will just follow the configuration the Parrot was given. 23:08
And Parrot does let you set all of those, if you Configure it yourself rather than with --gen-parrot.
How much of a case there is for wanting to use a different set of lib/bin/whatever dirs than Parrot does when installing Rakudo, I'm not sure...I'd imagine overrides could be provided in the future htough. 23:09
s1n at some point, both rakudo and parrot probably should shift towards a more typical build system, else distributors may be reluctant to tackle it's quirks (postpone or avoid) 23:11
23:21 reqamst joined
s1n feels very uneasy about doing a make install 23:21
reqamst hi 23:22
s1n i'll hold jnthn personally responsible :)
hah, i was able to really dork it up :) i exported DESTDIR and it really did prepend it 23:23
wayland76 I made Rakudo work with RPM. Are there outstanding questions?
s1n wayland76: is that directed at me? 23:24
wayland76 (Well, I teamed up with pmichaud and allison -- team effort)
s1n: Yes
s1n wayland76: not yet, but i don't use RPMs
wayland76 We had to modify the install process, so I have at least part of a grip on a few of the bits there
ok. I'm specifically responsible for adding DESTDIR :)
s1n wayland76: i do however know enough about building them to be dangerous :/
wayland76 It's not intended to be the same as the general "prefix" type things you find in a makefile 23:25
s1n wayland76: oh, but by not defining it in the makefile.in or something, that leaves it open for me to do that :) 23:26
wayland76 Exactly
s1n just in a stange-non-standard way
and potentially unsafe
wayland76 But it's *different* to "prefix".
s1n not really 23:27
wayland76 Allow me to explain the impression I've gotten.
s1n i pointed mine to /dev/null :)
wayland76 Say you have a file /usr/bin/perl
s1n guess what happened to the binaries?
wayland76 What?
s1n they went to /dev/null, sheesh :) 23:28
i get it, it's not a real / look-alike since it's all developer friendly still
wayland76 If you have /usr/bin/perl, then if you use $DESTDIR, they go in $DESTDIR/usr/bin/perl
23:28 tak11 left
wayland76 But in the case of a prefix, you'd have it as $PREFIX/bin/perl 23:29
s1n eh not to my understanding
wayland76 So changing $PREFIX to /usr/local gets you a sensible result
But changing DESTDIR to a sensible result doesn't :)
s1n: Well, maybe I've got the wrong end of the stick, but that was my understanding
s1n is $PREFIX some perl5-ism that doesn't correlate to --prefix? 23:30
wayland76 (oops, I meant "Changing DESTDIR to /usr/local doesn't get you a sensible result" -- my bad :) )
s1n: No, I've probably got the wrong end of the stick again
:) 23:31
I know about RPM a fair bit, but not a lot about standard build systems :)
s1n okay, autotools' --prefix is like a sandboxed install dir
wayland76 Ok. Now that I think about it, I think DESTDIR is something I nicked from Parrot
s1n and rpmbuild is just a wrapper around shell scripts, so you could have made it do anything there too
and parrot seems to rarely do standard things, so that makes sense 23:32
wayland76 Yah, I know RPM :)
Ok, let me ask this -- does autotools require multiple make files?
(ie. if we were compiling Rakudo)
s1n nothing is really "required" 23:33
wayland76 Ok. Because pmichaud seemed very keen to avoid multiple make files
s1n multiple makefiles for what?
wayland76 But he wanted to do something "standard", but neither of us knew anything about autotools, so we did the quickest thing that would work that pmichaud could live with 23:34
s1n i.e. a Makefile.in for building rpms?
wayland76 No, in the patch Allison provided, there were separate ones for different directories 23:35
s1n nothing about autotools is "quick", it spews tons of files, lots of little scripts, tons of extra crap, but it works across a wide variety of unixy systems
oh, that's a bad idea from a maintanence perspective
wayland76 Yeah, that's what pmichaud didn't like, I think 23:36
But instead, we ended up with lots of lines looking like this:
cd $(OPS_DIR) && $(LD) @ld_out@$(OPS)$(LOAD_EXT) $(OPS)$(O) $(LINKARGS)
(ie. with the "cd" at the start)
s1n it's a trade off 23:37
lots of little files leads to lots of little files that have to be kept up and eventually become a hassle
wayland76 Anyway, if you know anything about autotools, feel free to interact with pmichaud and provide a patch to use that instead :)
Yeah, but I figured since we were using a templating system, we could do something sensible there :) 23:39
s1n i don't really recommend it unless there's a desire to do something unlike perl5 and more like, say, gnome
wayland76 recommend what? Autotools?
s1n yeah, it's a pita
but it works across unixy stuff well
wayland76 ok
s1n hmm, getting this message: 23:42
Parrot VM: Can't stat /home/s1n/sandbox/rakudo/parrot_install/bin/perl6.pbc, code 2. \nmain: Packfile loading failed
hmm hold that, i need to look at something 23:43
23:44 Chillance joined
s1n nevermind, my bad 23:44