pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:20 wayland_ left 00:22 elmex left
meppuru good night 00:25
00:32 meppuru left 00:43 wknight8111 joined 01:02 nacho_ left 01:03 nacho__ left 01:11 nacho_ joined, nacho__ joined 02:03 alc joined 02:09 nacho_ left 02:12 adc_Penner left 02:39 FurnaceBoy left 02:56 rhesa left 02:57 rhesa joined 02:58 eternaleye left 02:59 eternaleye joined 03:00 yahooooo3 joined 03:01 jiing__ joined, [particle]1 joined, [particle] left, yahooooo left, jiing_ left, tewk left, tewk joined 03:03 Bzek left 03:16 aindilis left 03:17 aindilis joined 03:19 rintaro joined 03:24 lambdabot joined 03:36 alester joined 03:50 bacek__ joined 03:52 bacek_ left 03:55 Psyche^ joined 03:59 wknight8111 left 04:07 Patterner left, Psyche^ is now known as Patterner 04:09 aindilis left 04:18 eternaleye_ joined 04:19 aindilis joined 04:28 alester left 04:41 nacho__ left 04:46 z80ASM joined 04:48 eternaleye left 05:13 z80ASM left 05:27 tewk_ joined 05:41 tewk left 05:49 Bzek joined 06:59 iktome_ joined 07:00 adc_Penner joined 07:22 iktome_ left 07:33 DarkAkorn joined
DarkAkorn pokes moritz_ 07:34
him, or anyone else framiliar with the irclogbot around?
07:40 pbuetow joined 07:41 kanru left, kanru joined 07:47 bacek_ joined 07:48 bacek__ left 07:50 DarkAkorn left 08:16 eternaleye_ left, bacek_ left 08:27 schmalbe joined 08:28 eternaleye_ joined 08:47 smtms left, smtms joined 08:48 pbuetow left 08:51 bacek joined 08:53 eternaleye_ left 09:06 tcliou is now known as tcliou|away 09:09 riffraff joined 09:17 masak joined 09:18 adc_Penner left 09:22 Alias__ left
moritz_ @tell DarkAkorn just ask your question, and stay around long enough to see the answer ;) 09:25
lambdabot Consider it noted.
masak λ-bot! you're back! 09:26
09:28 tomyan joined 09:33 iblechbot joined
riffraff hi 09:44
masak y0
09:44 ejs joined 09:49 smg left 09:51 zamolxes left, zamolxes joined 10:03 zamolxes left
masak r32205 is responsible for the new, unfortunate junction behaviour. 10:07
it was created by bacek and committed by moritz_ 10:08
moritz_ masak: feel free to revert it (and add a test case)
lambdabot moritz_: You have 1 new message. '/msg lambdabot @messages' to read it.
masak its description is "Refactored Junction.pir.", which sounds about right 10:09
bacek masak: what the problem with junctions? 10:11
masak rakudo: say ("A" eq "A"|"B").perl 10:12
p6eval rakudo 32313: OUTPUT[any(Bool::True, Bool::False)␤]
masak that's the problem.
bacek masak: it's expected behaviour, AFAIU
masak bacek: then I'm not surprized that you broke rakudo :P 10:13
bacek: imagine that behaviour in an if statement
(which is exactly what happened in November)
bacek pugs: say ("A" eq "A"|"B").perl
p6eval pugs: OUTPUT[(Bool::False | Bool::True)␤]
moritz_ masak: that's fine, but it should correctly collaps in boolean context
masak ok, maybe
bacek we just need additional development for junctions ;) 10:14
masak is there a reason for it not to collapse earlier?
moritz_ perl6: say (? ("A" eq "A"|"B")).perl
p6eval rakudo 32313: OUTPUT[any(Bool::True, Bool::False)␤]
..pugs: OUTPUT[(Bool::False | Bool::True)␤]
..elf 22847: OUTPUT[0␤]
moritz_ masak: is there a reason to special-case some operators?
bacek afk # will backlog
masak moritz_: hm, maybe not. 10:15
people can collapse explicitly if they want to. 10:17
moritz_ that's the general idea of junctions, yes. 10:18
masak it's probable bacek's patch had other benefits that I'm not aware of 10:20
but the fact that it broke this spectest which I haven't written should be considered serious enough to revert it. 10:21
s/written/written yet/
masak writes the spectest
10:23 alc left 10:32 rindolf joined 10:33 elmex joined 10:41 rindolf left
masak rakudo: say (?any(Bool::True, Bool::False)).perl 10:43
p6eval rakudo 32314: OUTPUT[any("1", "0")␤]
masak hm. something's still wrong. :/ 10:45
moritz_ masak: did you re-open the ticket in which bacek's patch was? 10:48
masak no, I didn't see any ticket number. 10:49
still writing that test.
moritz_ my bad, I forgot to mention it in the commit message ;/
masak happens to the best :) 10:50
masak looks forward to the near future when VCSes and RT systems will grow closer to each other and even more automatic
moritz_ a simple svn post-commit hook that scans for "closes RT #\d+" or "closes [perl #\d+]" and actually closes the ticket would b a start. 10:53
pugs_svn r22856 | masak++ | [S03-junctions/boolean-context.t] added test for collapsing of junctions in boolean context
masak moritz_: aye.
& lunch 10:54
10:54 masak left
moritz_ masak: it's rt.perl.org/rt3/Ticket/Display.html?id=60168 10:58
lambdabot Title: #60168: [TODO] handle Junction threading in dispatch code 10:59
11:03 penk joined 11:07 KidShenck joined, orafu left
bacek perl6: say ("A" eq "A"|"B").perl 11:12
p6eval elf 22847: OUTPUT[␤]
..rakudo 32314: OUTPUT[Bool::True␤]
..pugs: OUTPUT[(Bool::False | Bool::True)␤]
bacek masak: it's bad idea to commit test that wrong and uncommit patch that's right :-/ 11:13
11:19 smg joined
bacek perl6: say ?(Bool::True|Bool::False) 11:21
p6eval pugs: OUTPUT[any(VBool False,VBool True)␤]
..rakudo 32314: OUTPUT[get_string() not implemented in class 'Junction'␤current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)␤]
..elf 22847: OUTPUT[1␤]
bacek perl6: if(Bool::True|Bool::False) { say "foo" } else { say "bar" } 11:22
p6eval elf 22847: OUTPUT[Parse error in: /tmp/0gn7I1EcOI␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: if(Bool::True|Bool::False) { s␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_r...
..pugs, rakudo 32314: OUTPUT[foo␤]
11:24 zamolxes joined
bacek perl6: say (Bool::True|Bool::False) eq 'Bool::False' 11:31
p6eval elf 22847: OUTPUT[␤]
..pugs: OUTPUT[any(VBool False)␤] 11:32
..rakudo 32314: OUTPUT[0␤]
bacek perl6: say (Bool::True|Bool::False) eq 'Bool::True'
p6eval elf 22847: OUTPUT[␤]
..pugs: OUTPUT[any(VBool False)␤]
..rakudo 32314: OUTPUT[0␤]
pugs_svn r22857 | bacek++ | Removing wrong test 11:40
bacek perl6: say ~(Bool::True|Bool::False)
p6eval pugs: OUTPUT[any(VStr "",VStr "1")␤] 11:41
..rakudo 32314: OUTPUT[get_string() not implemented in class 'Junction'␤current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)␤]
..elf 22847: OUTPUT[Bool::Vs}we␤]
bacek perl6: say ~((Bool::True|Bool::False) eq 'Bool::True') 11:44
p6eval elf 22847: OUTPUT[␤]
..pugs: OUTPUT[any(VStr "")␤]
..rakudo 32314: OUTPUT[0␤]
12:01 zamolxes_ joined, zamolxes left 12:07 zamolxes_ is now known as zamolxes, zamolxes left 12:14 zamolxes joined 12:20 sri_kraih_ joined, araujo left 12:22 Lorn joined 12:36 sri_kraih left 12:42 z80ASM joined 12:52 bsb left 12:59 araujo joined 13:07 cognominal left 14:04 penk left 14:08 orafu joined, orafu left 14:12 cognominal joined 14:19 orafu joined 14:27 z80ASM left 14:36 tcliou|away is now known as tcliou 14:45 pedrob joined 14:50 ejs left, ejs joined 15:01 alester joined 15:05 Gothmog_ left 15:09 Gothmog_ joined, jsut|work left 15:10 ejs left, sri_kraih_ left, bacek left, schmalbe left, aindilis left, lambdabot left, yahooooo3 left, szbalint left, alech left, Maddingue left, audreyt left, pedrob left 15:11 ejs joined, sri_kraih_ joined, bacek joined, schmalbe joined, aindilis joined, lambdabot joined, yahooooo3 joined, szbalint joined, audreyt joined, alech joined, Maddingue joined, aindilis left, aindilis` joined 15:18 rintaro left 15:27 cognominal_ joined 15:34 aindilis` left, szbalint left, bacek left, ejs left, yahooooo3 left, schmalbe left, alech left, Maddingue left, audreyt left, sri_kraih_ left, lambdabot left 15:35 aindilis` joined, ejs joined, sri_kraih_ joined, bacek joined, schmalbe joined, lambdabot joined, yahooooo3 joined, szbalint joined, audreyt joined, alech joined, Maddingue joined 15:42 zamolxes left 15:47 cognominal left 15:49 [particle] joined 16:04 jhorwitz joined 16:07 [particle]1 left
TimToady Cute Trick of the Day: alias A and U to tryfile, and then just paste "svn up" output of t/ into the shell to syntax check all recent checkins :) 16:11
moritz_ nice, but also needs an alias for UU (at least in general) ;) 16:13
TimToady could just teach tryfile to read stdin and throw away leading svn info, since tryfile can now handle multiple parses 16:14
moritz_ is that more efficient than starting multiple times? 16:16
and if yes, is Moose to blame? ;)
pugs_svn r22858 | lwall++ | [tryfile] allow files specified by stdin, with knowledge of svn output 16:18
r22858 | lwall++ | [STD] don't need inaccurate $COMPILING::LINE anymore
TimToady Moose might be to blame for why it's leaking memory, which is the main problem with doing multiple parses in one process 16:19
but it saves recompiling 1.8mb of Perl 5 code each time (well, each time except the first...) 16:20
moritz_ decommute & 16:21
TimToady well, more like 2MB after you add in all the other modules 16:22
1.8 millibits isn't very big on its own :)
16:23 masak joined
[particle] i wonder what the physical size of a bit is nowadays compared to 20 years ago 16:24
16:25 z80ASM joined
[particle] on magnetic storage, of course 16:25
16:31 hercynium joined 16:35 rindolf joined 16:38 meteorjay joined 16:42 ejs left 16:51 Exodist joined 16:53 lizsac left 16:57 justatheory joined 17:04 justatheory left, justatheory joined 17:16 ruoso joined 17:33 zamolxes joined
ruoso Hello! 17:34
masak y0
17:35 masak left
ruoso goes out for two days and have 600 emails to read... *sigh* 17:36
17:38 zamolxes left 17:41 rindolf left 17:42 iktome joined 17:43 schmalbe left 17:47 pedrob joined, iktome left 17:56 jauaor joined
jauaor Hello 17:56
moritz_ hi
jauaor just notices a new perl6 is coming to life for next year 17:58
book*
moritz_ which one?
moritz_ didn't hear of anything
jauaor Beginning Perl 6 17:59
moritz_ by whom? 18:00
jauaor www.amazon.com/Beginning-Perl-Novic...amp;sr=1-1
lambdabot tinyurl.com/6xfvkr
18:00 z80ASM left, adc_Penner joined
moritz_ wonders if James Lee hangs out here occasionally, and if yes, under which nick 18:02
ruoso admires brave people that publish a book hoping that we have a production-ready implementation in 3 months. 18:03
[particle] expects that date will be revised 18:04
jauaor just wonders if it is worthy buying considered the current state of the language 18:06
ruoso jauaor, the spec is fairly stable...
so it's probably a good buy
jauaor I see
ruoso it might be a little frustrating that not all features will be available yet 18:07
18:07 tomyan left
moritz_ heck, they can't even test 50% of their code examples 18:07
jauaor :-P 18:09
jauaor will probably oder this one
pugs_svn r22859 | ruoso++ | [mildew] it seems viv is keeping ws in the ast now... so lets just ignore it.. 18:12
ruoso is 'if' a topicalizer? 18:16
moritz_ ruoso: not unless you use 'if $expr -> $_ { .... }' 18:17
ruoso hmm... why would someone use '-> $_ ' if that is the default signature?
moritz_ it's not, I think 18:18
ruoso hmm... ok... it's actually '$_ is rw = $OUTER::_'
moritz_ otherwise {1;} would have arity 1
ruoso if it doesn't, it's wrong...
perl6: { $_.say }.("Hello World"); 18:19
p6eval pugs, rakudo 32317: OUTPUT[Hello World␤]
..elf 22847: OUTPUT[Parse error in: /tmp/Qmfo4ccnL4␤panic at line 1 column 10 (pos 10): Statement not terminated properly␤WHERE: { $_.say }.("Hello World");␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:355:in `eat_terminator'␤ STD_red/std.rb:269:in `block in
..statem...
ruoso pugs: { $_.say }.signature.arity;
p6eval pugs: OUTPUT[*** No such subroutine: "&arity"␤ at /tmp/qpTnDZBUAj line 1, column 1-27␤]
ruoso pugs: { $_.say }.signature.perl;
p6eval pugs: RESULT[":(\$_ is rw is ref)"]
18:19 scrottie joined
moritz_ afk 18:20
ruoso so, unless if EXPR POINTYBLOCK is a different statement_control
it should be consistent 18:21
either it is or it isn't a topicalizer
pugs: if "Hello World" { .say }
p6eval pugs: OUTPUT[␤]
ruoso rakudo: if "Hello World" { .say }
p6eval rakudo 32317: OUTPUT[␤]
ruoso ohkay...
it doesn't seem to be a topicalizer...
and it's probably better that way... otherwise for @foo { if .something { $_ is something different } } 18:23
18:23 pedrob left
ruoso @tell pmurias how do you keep track of which mold frame registers you use? should it just generate a random name for them and expect a later optimization that would consolidate the usage? 18:26
er... lambdabot?
lambdabot Consider it noted. 18:28
ruoso wow... 2 minutes delay
18:30 AzureStone left
ruoso having a hard time understanding how viv returns "if" 18:36
18:37 meppl joined
ruoso wonders what is viv's xblock and pblock 18:39
[particle] pblock as in pointy block? 18:41
no idea, just guessing
18:44 azawawi joined
azawawi hi 18:44
ruoso [particle], the most interesting part is that a xblock contains both the if expr and the block to execute if the condition is met 18:46
the last being the so-called pblock
maybe it's something generic for statement_controls 18:47
I wonder if TimToady can shed some light...
18:50 cognominal_ left 18:51 rindolf joined 18:57 jferrero joined 19:03 PZt joined
ruoso hmmm... viv seems 'if True {...}' as 'if &True() {...}' 19:09
is that expected?
TimToady generically, Type() and Type arg are considered type coercions 19:10
possibly we should restrict it to () forms so that enum values don't look for a following arg 19:11
(but I thought I'd done that already...)
azawawi hi TimToady 19:12
ruoso hmm.. does that mean we need to have &True in the scope?
or is there some other magic here...
like trying to see if its a known type before trying to see if its a routine
s/its/it's/g
or maybe looking for a type after the lookup for the routine fails 19:13
TimToady but anyway, it's parsing them all as functions currently, whether or not there are arguments expected 19:14
ruoso you mean it depends on the runtime state... 19:15
TimToady a constant is just a non-stateful 0-ary function anyway
ruoso I might agree to that, but there's a difference in how things are handled in the lexical scope
does that mean that the types are also registered as a routine of the same name? 19:16
TimToady essentially, yes
Int() is a function call that converts to type Int
19:17 pbuetow joined
TimToady but Int $x is a two-terms-in-a-row error 19:17
because Int is a type
ruoso hmm... I suppose we're going to catch that error by the fact that Int() signature is empty 19:18
TimToady it's not empty 19:19
ruoso it's not?
what is it then?
TimToady Int($x) has to bind to something...
it won't bind to a 0-ary sig
ruoso hmm... Int($x) and Int $x are not going to be parsed the same way?
TimToady no, see token args
ruoso ok... compilation depending on the runtime state ... 19:20
TimToady the parsing of types has always depending on predeclaratoin 19:21
s/oi/io
ruoso isn't that going to make it really hard to split compilation from runtime?
TimToady declarations are not "run-time" in that sense 19:22
only in the sense that all declarations run stuff in the compiler 19:23
ruoso but potentially stuff in BEGIN will cause the same types of dependencies it does in p5
TimToady in theory, but not in practice 19:24
pugs_svn r22860 | ruoso++ | [mildew] starting the implementation of "if"
ruoso TimToady, Is that just because you said so? meaning that we assume doing that kind of thing in BEGIN is subject to breakage... 19:26
that actually makes sense... 19:29
that probably means that all values used in BEGIN should be serializable...
TimToady BEGIN is like eval, its use is indication that there is some more specific mechanism missing; p6 attempts to supply those missing mechanisms 19:30
ruoso ok... so that also probably means we're going to have a "shared library compilation" mechanism... 19:31
that includes dynamic linking of the dependencies... 19:32
TimToady importation is now defined in terms of aliasing from subpackages representing export tags, for instance 19:33
ruoso my question is really on how the compiler creates the "bytecode" (or whatever) that represents that comp_unit... 19:34
19:34 cognominal joined
ruoso does it assume you're going to discard any side-effects and just serialize the package ? 19:34
TimToady side-effects are not allowed in that sense 19:35
ruoso but can't really be prevented...
which mean that we can only ignore them
TimToady there's this wonderful word used by the Ada spec: "erroneous"
that which is erroneous is wrong, but the compiler is not required to check for it 19:36
just "don't do that"
ruoso ok... that brings us back to the "monkey patch" discussion 19:37
TimToady use one of the official polymorphism mechanisms instead
ruoso what happens if a module modifies a global package in BEGIN?
19:37 TJCRI joined
ruoso do we just ignore it and serialize only its own package? 19:37
TimToady then the global package is modified, oh well
ruoso right... in compile-time
but if that comp_unit is now compiled, 19:38
TimToady then the changes are likely lost
ruoso right...
so basically it serializes the package of that comp_unit
TimToady we don't rely on globals nearly as much as some people seem to think
globals are really only for the run-time 19:39
ruoso I know... I know...
TimToady nearly everything else is either defined lexically or polymorphically
ruoso my question is about what to do with the bad code
not how to write good code
TimToady the compiler is allowed to warn if it notices things that it knows are wrong 19:40
ruoso it also seems to me that this requires that all aliasing should not be definitive in compile time
it should be a symbolic link, not a hard link...
TimToady it's already that way for types within methods 19:41
they are treated virtually
ruoso right... but that applies for everything imported
19:41 AzureStone joined
ruoso not only types 19:41
otherwise we have a "static link"
TimToady has to be resolved at some point
ruoso it just can't be at compile time... 19:42
so we can draw the boundary of what's defined here
and what's defined outside
TimToady we typically import into lexical or package scope, not global
ruoso sure sure...
but even then...
if we're serializing the package... we have to serialize "a link to Foo", not recurse into serializing "Foo" itself 19:43
TimToady gotcha
so either we hard link at INIT time or at START time (first use) 19:45
19:45 Bzek left
TimToady or are you suggesting even later than that, as in OO? 19:45
ruoso well... maybe that's something for optimizers 19:47
we just assume it can only be done at INIT time onward
TimToady we're kinda trying to nail down module APIs by version so that they're not too terribly mutable
the decision of which version to compile against is likely made at compile time, so we know exactly what set of symbols are available 19:48
ruoso I wonder if we really want to make binary-depends like
because maintaining that requires a lot of effort 19:49
(as a sysadmin, I mean)
TimToady big shops already manage multiple versions, and want things to stay the same after they're nailed down
ruoso even if there isn't a versioned dependency in the source? 19:50
TimToady I'm saying we probably install a versioned dependency at compile time
ruoso I know... I'm just wondering if that's really a good idea...
TimToady we must at least record which version we compiled against 19:51
ruoso yes... recording is nice..
but enforcing might just require useless recompilations
TimToady the idea in p6 is that we never throw old versions away as long as anyone is using them
ruoso that's pretty much how Debian manages binary dependencies 19:52
TimToady there could be a mechanism for tweaking the dependency and testing without recompilation, I suppose
on the assumption the api/semantics didn't change drastically
ruoso feels that we're going to end with a libtool-like versioning schema 19:53
TimToady or pragmatically make "use" compile to a range of allowed linkages
19:54 jferrero left
TimToady I'd rather track too much information and then simplify than to make the p5 mistake of not tracking enough information and then not having it when you want it 19:54
ruoso libtool versioning works by you saying the max version of the API you support, the min version of the API and the revision 19:55
azawawi has found a solution to make redspans consume less memory... testing...
ruoso but that requires the maintainer of each library to be competent enough to understand when there's an ABI change...
and a lot of programmers doesn't realize when the ABI change... 19:56
and that's why we have so many segfaults in our world...
PerlJam ruoso: have you ever used ruby gems? 19:57
ruoso nope
ruoso reading the user guide...
PerlJam When you install a gem, it keeps previous versions around unless you've asked to remove them. This sounds quite a bit like what you guys are talking about for Perl 6 19:58
TimToady we allow version ranges in the "use", but I'm not sure the ranges are so valuable after compilation time; p6 wants to allow multiple versions of the same name to run at the same time anyway, so the only reason to force a version is to manage an exclusive resource
and generally you want to split out the versioning of that resource into its own module anyway
PerlJam I'm not sure how gems handle version freezing or when though 19:59
20:00 pedrob joined
ruoso TimToady, the problem is not the explicit versioned depends in "use"... but the amount of bad handling in the module versioning itself... 20:01
TimToady p6 considers all versions installed into "the library" to be frozen. only your own personal modules are mutable
ruoso: "Doctor, it hurts when I do this..."
I think in the long run versioning has to be culturally enforced, though certainly tech can help or hinder that enforcement 20:02
ruoso if a module maintainer doesn't handle the "this module implements versions from A to B" correctly, it's simply going to break badly
20:02 REPLeffect joined
ruoso that's why I'm not sure enforcing versioning by default is a good idea 20:02
pugs_svn r22861 | azawawi++ | [redspans] trees are now stored as action refs thus consuming far less memory.
PerlJam ruoso: darwin will weed those out :) 20:03
TimToady darwin and a shotgun...
ruoso or just give a lot of headache to sysadmins
I'm not saying I do know a better solution...
just trying to make it clear the problem....
maybe someone comes up with a good idea to solve that... 20:04
TimToady anyway, I think a good default is for the compiler to say, "I compiled against version X, so I want to run against version X if at all possible"
then it's the fault of whoever relaxes that policy :)
PerlJam TimToady: and how would they say "...and use a newer version if available"?
TimToady if we can give the module developer tools to measure divergence, maybe we can prevent some of the breakage
ruoso measuring divergence is something missing in C development, for instance 20:05
TimToady but I think they don't already use the tools they have *cough*TAP*cough*
maybe only allow people to check in a new version if there's an increase in Kwalitee :) 20:06
ruoso a lot of people rely on the linux distros to do that job
and a linux distro will always prefer the newest release... 20:07
(newest stable release, I mean)
TimToady "You may not check this new version into the Standard Perl Library without adding at least one more test to your test suite."
ruoso maybe we could have a tool that imported into the application test suite the test suites of its dependencies in that version 20:08
then the test suite would test if the installed version still passes on that version's test suite
if it doesn't it probably isn't compatible
TimToady we may have to insist that linux distributions don't update the Standard Perl Library per se, but install individual modules that are then inserted (and remember forever) according to Perl Policy 20:09
*remembered
or at least until a GC run says that nothing on this machine uses the old version 20:10
PerlJam It's the OS theory of perl libraries ... ring 0 == Standard Perl Library, ring 1 == vendor specific stuff, ring 2 == user specific stuff
(adjust the number as size of rings as appropriate) 20:11
:-)
TimToady well, it's certainly the OS theory in the sense that once you install a system call with a particular api, you never remove that call
you might replace it with an emulation based on another call
PerlJam Even DOS dropped support for DOS 1.0 at some point. 20:12
ruoso sees the number of debian binary packages in the stratosphere with CPAN6...
TimToady well, there's the likelihood of bundling of Perl distributions too 20:13
PerlJam ruoso: no, if the module is CGI (for instance), there's one binary that perhaps installs CGI 1.0 through CGI 4.5 or whatever
:-)
ruoso TimToady, btw... have you ever seen the DistributionFormat proposal I started in the wiki?
TimToady nope, that's far too practical for me to think about :) 20:14
ruoso PerlJam, yeah... maybe libcgi4.5-perl replaces libcgi1.0-perl
www.perlfoundation.org/perl6/index....tionformat 20:15
lambdabot Title: DistributionFormat / Perl 6
PerlJam maybe libcgi4.5-perl includes libcgi1.0-perl (and then the binaries themselves just grow without bounds ;-)
ruoso heh..
pugs_svn r22862 | azawawi++ | [STD_syntax_highlight] less memory usage... now works in < 512M ulimits
azawawi is generating another round of syntax highlighted htmls in far less memory... rx.t does not OOM 20:18
ruoso well... as long as we don't choose the Java way (which is to include every library used inside every application distribution), I'm fine
[particle] azawawi: is there a time tradeoff? 20:19
PerlJam ruoso: that should be an *option* I think.
ruoso I'd rather support "static linking"
azawawi [particle]: not much... used references instead of strings copies
PerlJam (but certainly not the default :)
[particle] ah, yes, references++
do you throw them away as you go?
azawawi Lesson of the day: Remember your 'references' ;-) 20:20
20:20 mberends_ joined
azawawi [particle]: nop atm since i need them for --full-html mode 20:21
[particle]: i think the main problem is that we were copying a lot of strings around vs arrays of hashed action name references for trees 20:24
20:27 mberends_ left
azawawi the ETOOMUCHTIME script processed 60 tests so far... which is way too fast than before 20:28
20:30 _Jedai_ joined 20:31 masak joined
azawawi hi masak 20:31
masak azawawi: hi
azawawi masak: im sorry i wasnt around; but the answer to your question is that did you 'make'? ;-) 20:32
masak azawawi: no, probably not
masak tries that
azawawi masak: i think i should add a STD sanity check in ETOOMUCHTIME 20:33
masak aye. 20:34
and a friendly instruction to people who don't know they should run `make` :)
masak found README
um. nvm.
azawawi: ok, so it turns out I don't have something called 'gimme5' 20:35
what do I do?
azawawi masak: svn update? 20:36
masak svn updates
but you might have misunderstood me.
it can't find the executable
[particle] src/perl6/
azawawi r u in pugs/src/perl6?
masak aah...
hold on, that's not the problem 20:37
it looks for perl in /usr.local/bin/perl
s/\./\//
20:37 rdice joined
masak I should make a symlink from there 20:37
[particle] stop waving that sword around
you need 5.10 btw 20:38
azawawi 101 files and counting...
masak uh oh
azawawi is going to cron automate it to run everyday on off-peak hours... 20:39
masak sorry, installing 5.10 is too big a chore for me right now.
I should be toying with November :)
[particle] then you need 6.0 ;?
;)
azawawi how is November these days? Any new features? ;-) 20:40
masak [particle]: you have no idea how much I need 6.0 ;)
azawawi: November has been in a phase of constant buildup since YAPC in August 20:41
not many new features, but a more straightened-out and less hackish core
something to build from
azawawi does it have 3D wikis? ;-)
masak azawawi: no, is that a feature request? :P 20:42
azawawi lol
masak anyway, ask again by the end of this month. I've promised myself to fiddle a little with the project every day, so things are bound to happen. 20:43
today, for example, is Skin Monday!
20:44 pedrob left
azawawi anyway we could run parrot code on as3 flash? 20:44
20:45 pedrob joined, pedrob left, Lorn left, pedrob joined 20:48 |Jedai| left
masak bacek: re "test that's wrong and patch that's right": sorry :/ all I can say is that it looked right here. I was even careful enough to check that the test passed without your patch and failed with it. apparently I screwed up somewhere along the way. 20:52
bacek masak: it passed in rakudo because of bug in rakudo 20:58
pugs: say ~(Bool::True|Bool::False)
masak bacek: now that's comedy.
p6eval pugs: OUTPUT[any(VStr "",VStr "1")␤]
bacek pugs: say (Bool::True|Bool::False) eq 'Bool::True' 20:59
p6eval pugs: OUTPUT[any(VBool False)␤]
bacek pugs: say (Bool::True|Bool::False).perl eq 'Bool::True'
p6eval pugs: OUTPUT[␤]
bacek pugs: say (Bool::True|Bool::False).perl
p6eval pugs: OUTPUT[(Bool::False | Bool::True)␤]
bacek masak: see?
masak bacek: I see, but I'm not sure I understand. 21:00
junctions make my brain try to hurt in several ways at once.
bacek ("A" eq "A"|"B").perl eq 'Bool::True'
this is wrong
masak I believe you. why?
bacek It's not expected behavior
masak by me, it is. 21:01
sorry for being stubborn.
bacek because ("A" eq "A"|"B") is junction (True|False)
rhr should be ("A" eq "A"|"B") === Bool::True
masak bacek: yes.
bacek: I see what you mean now.
rhr bacek: no, comparison ops collapse junctions
bacek (True|False).perl can't be just 'Bool::True' 21:02
masak rhr: I have reason to believe they don't.
21:02 rindolf left
rhr no, testing the .perl is wrong 21:02
bacek pugs: say (Bool::True|Bool::False) === Bool::True
p6eval pugs: OUTPUT[any(VBool False,VBool True)␤]
bacek masak: anyway, why you need collapsing? 21:03
masak bacek: originally, because the lack of it made November fail
bacek masak: you did something wrong.
masak bacek: see the lower part of use.perl.org/~masak/journal/37787
lambdabot Title: Journal of masak (6289)
masak bacek: preferably the code linked from there, too 21:04
if that code was wrong, I'd very much like to know.
bacek perl6: if (Bool::True|Bool::False) { say "foo" } else { say "bar" }
p6eval elf 22847, pugs, rakudo 32319: OUTPUT[foo␤]
masak it worked until your patch got in
bacek this behavior wasn't changed by my patch
masak bacek: but it was.
bacek masak: prove it 21:05
masak bacek: have you read the code.
?
bacek small code will be enough
masak: whole November? no
masak bacek: github.com/viklund/november/tree/43...ate.pm#L40
bacek: it was linked from the blog post I just sent.
bacek: after your patch, it started dying with the error "Unrecognized directive: TMPL_VAR" 21:06
even though the test is for anything _except_ VAR, LOOP and IF 21:07
bacek perl6: say ('a' ne 'a'&'b')
p6eval elf 22847: OUTPUT[1␤]
..rakudo 32319: OUTPUT[0␤]
..pugs: OUTPUT[all(VBool False,VBool True)␤]
[particle] lovely. 21:08
masak :)
21:08 spx2 left, Ehtyar left, buu left, zostay left, buu joined, spx2 joined, zostay joined
masak elf is definitely wrong here. 21:08
bacek rakudo is wrong too 21:09
perl6: if (Bool::True&Bool::False) { say "foo" } else { say "bar" }
p6eval pugs: OUTPUT[bar␤]
..elf 22847, rakudo 32319: OUTPUT[foo␤]
masak if pugs isn't right here, someone's have to explain it to me
s/'s/'ll/ 21:10
bacek pugs right
TimToady comparisons do not collapse junctions--only boolean contexts collapse
masak rhr: told ya :)
bacek perl6: if ('a' ne 'a'&'b') { say "foo" } else { say "bar" }
p6eval pugs, rakudo 32319: OUTPUT[bar␤]
..elf 22847: OUTPUT[foo␤]
masak elf-- 21:11
bacek: I feel I lost my track here a bit. did I successfully prove to you that your patch broke our app?
bacek perl6: say ?(Bool::True&Bool::False) 21:12
p6eval rakudo 32319: OUTPUT[get_string() not implemented in class 'Junction'␤current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)␤]
..elf 22847: OUTPUT[1␤]
..pugs: OUTPUT[all(VBool False,VBool True)␤]
bacek masak: $ ../../parrot perl6.pbc -e 'if (Bool::True&Bool::False) { say "foo" } else { say "bar" }'
foo
it's on my version. So, answer is "not"
masak bacek: is that a yes? :)
ok. 21:13
bacek I'll check what the heck is in "if" statement. Because it is bug in "if".
masak bacek++ # solving the problem
bacek masak: you can add more tests in S03-junction. Something like 'ok (Bool::True|Bool::False)' and 'ok !(Bool::True&Bool::False)' 21:15
this will be helpful.
masak bacek: will do.
bacek TimToady: what is expected value of '?(a&b)'? Junction or bare bool? 21:16
TimToady I suspect you should also check for the pugs problem--the ? should probably just return False, not all(True,False), since it's converting to Bool 21:17
hmm, I guess I just answered your question, kinda 21:18
bacek TimToady: indeed ;)
TimToady likewise true()
and !
and not()
bacek TimToady: what about ('a'|'b' eq 'b')? 21:19
21:20 ruoso left
TimToady it's okay for that to return (True|False), I think; however ! and not are tests for True, not tests for False 21:21
so not( 'a'|b' eq 'b') will always return False
bacek TimToady: ok. Sound reasonable. 21:22
TimToady not is the absence of truth, not the presence of falsehood
[particle] what is the sound of one op negating? 21:23
21:23 iblechbot left
TimToady so if you know that 'a'|b' eq 'b' is in a boolean context, you can short circuit as soon as you've found a true 21:23
bacek masak: I found why "old" junctions works as you expected. Even error
21:23 delrico joined
masak bacek: errors seem to be the theme of the day. 21:24
bacek masak: I'll fix it later today.
afk # wake up kids for the school
TimToady which gives the appearance that 'eq' is resolving it, even though it's really the boolean context
note that '(...) === Bool::True' is not itself a boolean context 21:25
so you can still test ('a'|'b' eq 'b') === False and get a true result 21:26
on the other hand, true('a'|'b' eq 'b') === False will be false 21:27
masak I wish that would be enough for people to stop writing '=== True' when they mean ''. sadly, I don't think it will be.
pasteling "azawawi" at 212.38.145.15 pasted "ETOOMUCHTIME sample output [it is fast ;-)]" (2298 lines, 77.9K) at sial.org/pbot/33025
masak azawawi++
TimToady maybe if we start carping about "Useless use of === True" :) 21:28
masak TimToady: yes, please do. and threaten to name names. :) 21:29
azawawi TimToady: Finally, rx.t didnt OOM when ulimited ;-) feather.perl6.nl/~azawawi/html2/S05.../rx.t.html
lambdabot Title: ../../t/spec/S05-mass/rx.t
masak azawawi: do "Failed tests" here mean that those files don't pass STD?
azawawi masak: yeah, you can check the error on link... 21:30
TimToady hmm, last I checked everything in t/ passed
21:30 mberends_ joined
masak azawawi: since it's now fast, maybe you should change the script's intro message :) 21:30
and perhaps the name.
azawawi masak: it is not fast enough ;-)
masak azawawi: good attitude. 21:31
azawawi TimToady: some fail like feather.perl6.nl/~azawawi/html2/S02...num.t.html
lambdabot Title: Error, tinyurl.com/5kqtro
azawawi TimToady: i get that "Malformed UTF-8 character" error on STD.pm on feather1 21:33
21:33 nacho_ joined
TimToady you probably need to install $src_text = Encode::decode('utf8', read_file($file) ); 21:33
somewhere like I did in STD_syntax_highlight
azawawi it is already there... strange 21:34
TimToady are you rereading the file somewhere else? 21:35
azawawi parseFile($file,...)
TimToady that already does it too
21:36 ab5tract joined
TimToady in fact, these days Cursor carries both a utf-8 encoded string and an equivalent integer array from unpack("U*"...) 21:36
since I'm in the process of switching over to an NFGish model for the lexer 21:37
and I plan to do away with TRE by use of integer tries and such
pasteling "azawawi" at 212.38.145.15 pasted "STD_syntax_highlight "Malformed UTF-8 character" with STD.pm" (9 lines, 458B) at sial.org/pbot/33026 21:38
azawawi TimToady: could u try that command on your laptop? 21:39
it croaks after 14secs on feather1 21:40
TimToady what does "file STD.pm" say on your machine
azawawi STD.pm: UTF-8 Unicode English text 21:41
TimToady that's fine. my command is still running without complaint 21:43
azawawi hmmm, then something here is broken... rm -rf perl6; svn update; nice make...
TimToady finished, but the html files are in latin-1, not utf-8 21:45
moritz_ probably missin a 'bindmode $out, ":utf8"' somewhere 21:46
azawawi moritz_: hi 21:47
moritz_ waves vaguely to the channel and to azawawi
azawawi TimToady: same thing, after doing all that...
azawawi wonders why this is happening only to his feather1 acct 21:48
pugs_svn r22863 | azawawi++ | [STD_syntax_highlight] updated comments 21:50
TimToady /usr/local/bin/perl -v 21:51
azawawi This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
TimToady maybe some difference in File::Slurp? 21:57
moritz_ it works for me, also on feather1
TimToady are you running under a strange locale? 21:59
azawawi is checking it 22:00
TimToady the "locale" command should say 22:01
22:01 ryanc joined
pasteling "azawawi" at 212.38.145.15 pasted "locale output" (15 lines, 263B) at sial.org/pbot/33028 22:02
TimToady that's probably the problem
you need a .UTF-8 locale
moritz_ why? I mean the normal Unicode stuff isn't locale dependent, is it? 22:03
22:03 iblechbot joined
TimToady speaking as a cultural imperialist, I'm in en_US.UTF-8 22:03
azawawi moritz_: what does 'locale' say at your feather1 acct?
22:04 rdice left
TimToady who knows what the C library pays attention to... 22:04
moritz_ azawawi: it's all en_US.UTF-8
azawawi moritz_: interesting
TimToady but POSIX locale is notably UTF-8 hostile
iirc
azawawi the question is how did that happen? ;-) 22:05
moritz_ did you ever set the locale?
azawawi nop
moritz_ the it happened because it's the default ;)
TimToady my .bashrc contains: LANG=en_US.UTF-8 22:06
moritz_ echo 'export LANG=en_US.UTF-8' >> .bashrc
azawawi cool then we need a sanity check ;-)
TimToady it's not clear that sanity has much to do with unicode... 22:07
moritz_ lol
22:07 nacho_ left
azawawi testing it... 22:07
TimToady 'course, he didn't say which boolean sense
22:10 ab5tract left 22:11 TJCRI left 22:14 smg left 22:18 adc_Penner left
pugs_svn r22864 | azawawi++ | [STD_syntax_highlight] :utf8 output 22:19
22:20 rhesa left
azawawi perfect... it works, TimToady++, moritz_++ 22:20
so should we check for this weird case or not? 22:21
azawawi is running ansi,simple/full htmls for STD.pm...
TimToady maybe we should just force a utf8 locale if the current locale isn't, since p6 requires unicode 22:22
TimToady now wonders what POSIX.UTF-8 would do... 22:23
probably form a miniature black hole... 22:24
lunch &
azawawi im glad this is solved... no more OOMs, less memory footprint, and faster than before [next step a cron job] 22:26
azawawi says 'time STD_syntax_highlight STD.pm' => real: 5m24.346s, user: 2m45.162s, sys: 1m21.769s 22:28
22:30 jauaor left
azawawi Done... enjoy. feather.perl6.nl/~azawawi/STD.pm/ 22:31
lambdabot Title: Index of /~azawawi/STD.pm
azawawi moritz_: any ideas on other output formats?
moritz_ azawawi: just an option to omit HTML header + footer (for inline inclusion in other HTML files) 22:33
22:34 avar left
azawawi moritz_: you mean only no <html><head>s ? 22:34
[particle] ability to specify alternate css file :)
azawawi [particle]: you can do that with --clean-html
[particle] azawawi++ 22:35
moritz_ azawawi: and no <body>
azawawi moritz_: and no css? 22:36
moritz_ azawawi: and no css
[particle] that'd be my guess, no css
that's one step closer to proper integration with smartlinked spec
moritz_ mostly wants it for the code examples on perlgeek.de and perl-6.de 22:37
azawawi --moritz-mode ? 22:38
;-)
[particle] --html-snippet maybe?
moritz_ --no-skeleton ?
azawawi --inline-html? 22:39
[particle] i wonder what the output would look like in yaml
moritz_ pretty boring, probably ;)
azawawi does not make sense to generate a YAML from a syntax highlighter ;-) 22:40
[particle] it does if you want to generate html or pdf or ansi etc 22:41
but, only if you want to serialize the intermediate data
azawawi is working on --no-skeleton switch 22:43
masak ang, Cmd-Q is far too similar to Cmd-Tab... :/
(luckily, just like Jesus, Firefox saves) 22:44
azawawi oops, it is 12:43AM here... gonna sleep to go work &.. postponing tasks for tomorrow...
azawawi sleep.. cya & 22:45
22:46 azawawi left
[particle] syntax: [ !scope_declarator 'my', !ws ' ', !sigil '$', !variable 'foo', ... ] 22:47
hrmm, methinks the green should be tied to 'ident' and not 'variable' in the css 22:49
param_vars don't show up properly otherwise
22:59 avar joined
masak perl6: my $a = 7.8; $a .= int; say $a 23:00
p6eval pugs, rakudo 32323: OUTPUT[7␤]
..elf 22847: OUTPUT[Use of uninitialized value $_ in int at (eval 119) line 4.␤Undefined subroutine &GLOBAL::infix__46_61 called at (eval 119) line 4.␤ at ./elf_f line 3861␤]
masak approximately how long has rakudo had dotty methods?
moritz_ all methods are dotty, aren't they? ;)
masak moritz_: no, not really :) 23:01
moritz_ or do you mean mutators?
or with $_ as default?
masak I mean the '.= method' syntax
...and its corresponding semantics
moritz_ quite long I think, because that was needed for the protoobject based OO model 23:02
which jonathan implemented shortly be fore teh German Perl Workshop, so probably March.
masak wonder what I meant by "We miss long dots, heredocs, and dot-assignment a bit." in my blog post about Rakudo stuff in August then. 23:03
23:03 Limbic_Region joined
moritz_ long dots are $obj\ .method, right? 23:04
masak yes. we have them too, nowadays.
perl6: say $_\ .perl
p6eval rakudo 32323: OUTPUT[undef␤]
..pugs: OUTPUT[\undef␤]
..elf 22847: OUTPUT[Parse error in: /tmp/OZqmmxEFs6␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say $_\ .perl␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_red/std.rb:210...
moritz_ masak: but for example the parsing for .[] subscripts is pretty new
23:06 spx2_ joined
[particle] well, if you're coming from perl 5 and implementing perl 6, it's not natural that @a[] is sugar for @a.[] 23:06
so, .[] et al were likely just missed
masak: can you use =<> in rakudo now? 23:07
masak [particle]: hold on.
moritz_ if you implement Perl 6, you'd better know that @a[] is really a method call ;)
masak [particle]: no.
[particle]: I mean, it parses. but it doesn't work. 23:08
[particle] rats.
masak there's a ticket about it somewhere.
[particle]: aye.
[particle] ah, ok
well, allison's been working on the io branch, i should check it out
i have -n cmdline implemented, but it doesn't work due to =<> not working
23:09 spx2 left
[particle] so i'll just hold that patch in reserve 23:09
and i won't bother with -p for now
masak [particle]: ah, [perl #58524]
23:16 elmex left 23:19 avar left
masak [particle]: I look forward to -n and -p. will this still work with your patch? perl -ne '} print "$.\n"; {' 23:24
(disregarding the fact that $. might be renamed in Perl 6. I mean the principle itself) 23:25
(and no, I don't know whether I really want a yes or a no as an answer to that question) 23:26
23:28 alester left 23:35 bacek_ joined 23:39 avar joined 23:43 pedrob left 23:44 pedrob joined, smg joined, wknight8111 joined 23:46 pedrob left, riffraff left 23:48 hercynium left 23:52 iblechbot left 23:56 pbuetow left