»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:04 Chillance left 00:11 telex left 00:15 benabik joined 00:19 s1n joined, MikeFair joined, skids joined 00:25 Circlepuller joined 00:27 Circlepuller_ left 00:28 UnknownCharacter left 00:32 telex joined 00:34 kid51 joined 00:35 tokuhiro_ left 00:39 MikeFair left 00:41 MikeFair joined 00:51 s1n left 01:06 hypolin joined 01:07 s1n joined 01:16 scott_ joined, scott_ is now known as Guest33156 01:56 FROGGS_ joined 01:59 flightrecorder left 02:00 FROGGS left 02:01 flightrecorder joined 02:02 kid51 left 02:05 gootle joined 02:08 OuLouFu joined 02:29 benabik left 02:31 s1n left 02:45 s1n joined 03:45 benabik joined 03:54 yarp joined 04:02 benabik left 04:09 benabik joined 04:16 hypolin left 04:20 hypolin joined 04:25 hypolin left 04:26 hypolin joined 04:27 skids left 04:33 Khisanth joined 04:37 hypolin left 04:44 hypolin joined 04:45 yarp left 04:51 hypolin left 04:53 hypolin joined
TimToady admires all the crickets 05:04
05:08 kaleem joined
sorear o/ 05:16
moritz \o 05:22
05:40 wk_ left
dalek ast: eecc10a | moritz++ | S06-multi/proto.t:
test {*} in terms within protos
05:41
05:51 marmay joined 06:04 wtw_ joined 06:10 FROGGS_ left 06:12 flightrecorder left 06:29 kaleem left, kaleem joined 06:33 GlitchMr joined 06:40 DreamingInCode left 06:48 wk_ joined
sorear occasionally I do things so stupid I have to share them 06:50
[core]
excludesfile = /Users/sorear/.gitconfig
it has been set up this way for several months
06:53 stepnem joined 07:01 Parul joined 07:04 LlamaRider joined 07:06 flightrecorder joined 07:07 wamba joined, FROGGS joined 07:09 yarp joined 07:16 fhelmberger joined, Parul left
moritz erm, what? :-) 07:17
tadzik heh,took me a while to catch :) 07:18
moritz looked up the docs for core.exludesfile in order to verify it was really what I though 07:19
tadzik I assume it's a path to .gitignore
sorear yeah. 07:20
$ git add t/rt_gh2.t
The following paths are ignored by one of your .gitignore files:
t
and I'm like "wtf?"
in retrospect this explains why I was having such trouble getting $HOME/.gitignore to work
tadzik :P 07:22
07:27 yarp left
FROGGS good morning btw 07:30
tadzik FROGGS: this looks nice 07:32
File::Spec
FROGGS ya, and the important thing, it works ;o) 07:34
wasnt that easy to add methods to a class depending on $*OS 07:35
and making them reusable, so that the Mac part uses the Unix stuff by default, just overwriting a few
it would be easier if you just could do: self."$package".method() 07:36
moritz ::($package_name).^add_method($name, $method); 07:37
::($package_name).^compose
FROGGS inside submethod BUILD? 07:38
and if $name is the method name to add, what is $method?
what does compose do?
so much questions... I hope you already got your coffee ;o) 07:39
07:40 cognominal joined, cognominal left 07:41 cognominal joined
hoelzro does NativeCall work with C functions that require callbacks? 07:42
FROGGS hoelzro: it does
there is a t/callbacks.t, have a look at that
hoelzro =D 07:43
I'm thinking of trying to write a small Gtk application in Perl6
FROGGS Its pretty easy 07:44
you might have a look at SDL
as an example
github.com/PerlGameDev/SDL6/ 07:45
hoelzro whoa, cool
FROGGS SDL::Mixer::Channels uses callbacks
hoelzro wishes he had more time to contribute to Rakudo
tadzik FROGGS: how is SDL6's NativeCall different from the original one? 07:46
Su-Shee hoelzro: PLEASE do. and PLEASE make it Gtk3 and use the GIR stuff (look into the Perl5 module, Gtk3 already reaches out halfway to the target bindings..)
FROGGS ya, but writing modules is very important too
tadzik: what do you mean?
hoelzro Su-Shee: GIR?
tadzik FROGGS: github.com/PerlGameDev/SDL6/blob/m...veCall.pm6
FROGGS ohh this one 07:47
tadzik it also makes me think we may need 'conflicts' and 'provides' in panda :F
hoelzro it would probably just be the minimum I'd need to write my application
FROGGS there is the refresh method (at bottom) commented out, my rakudo 2012.08 doesnt like it
hoelzro but that would be a repository accepting contributions for further refinement =)
07:47 cognominal left
FROGGS but it shouldnt be in the repo though :/ 07:47
sorear FROGGS: have you tried using "handles"? 07:48
Su-Shee hoelzro: Gtk3 and related has made a facility to make bindings much easier by creating an external definition of all symbols (I think) so you just wrap _that_ and not the calls itself. the Gtk3 Perl5 module is like 150 lines of code and that's ALL gtk3. look into it before you wrap anything.
hoelzro Su-Shee: I knew that Gtk3 uses inspectable objects, which is nice! 07:49
sorear hoelzro: if you use niecza it is possible to directly use the "gtk#" CLR binding
hoelzro so I'll probably go with that =)
FROGGS sorear: if I dont exactly know what you mean, does it states "no"?
Su-Shee hoelzro: live.gnome.org/GObjectIntrospection/
hoelzro: yes, that's exactly it! really, look into the Perl5 module, it couldn't be shorter...
hoelzro ok =)
thanks for the info!
Su-Shee hoelzro: and half of the gnome stack actually HAS GIR, it's not just Gtk, but many libs more. 07:50
hoelzro neat
sorear FROGGS: role File::Spec::Guts { ... }; class File::Spec { has $!guts handles File::Spec::Guts = pick-guts($*OS); }; class File::Spec::Unix does File::Spec::Guts { ... }
hoelzro so I could make a GIR module that Gtk3 would be based on
07:51 cognominal joined
sorear tadzik: so I hear you've been playing with niecza 07:51
Su-Shee well alright, it's 900 lines -> metacpan.org/source/TSCH/Gtk3-0.008/lib/Gtk3.pm
FROGGS sorear: no, haven't seen that possibility yet
tadzik sorear: I'm playing with it from time to time; I just ran some bailador code on it recently
Su-Shee hoelzro: no, you basically incorporate the GIR definition you generated and re-map it to perl calls so to speak.
hoelzro I see... 07:52
I'll have to investigate this some more...
sorear tadzik: I'm curious how it went
Su-Shee hoelzro: I strongly recommend it, otherwise you're doing the typical wrap-c-lib-by-hand stuff.
FROGGS sorear: I will try that, that looks pretty much like one approach I tried yesterday 07:53
tadzik sorear: oh it was nice :) After I got over the surprise that niecza doesn't automagically pick ~/.perl6/lib it all went smoothly
Su-Shee hoelzro: and your gtk stuff has to be configured with --gobject-introspection of course.
tadzik works faster and better than rakudo, as in: it doesn't actually work on rakudo at all
Su-Shee hoelzro: atk, glib, pango, cairo, gtk, hmhm and hmhmhm.
tadzik (HTTP::Easy is broken)
sorear: I got hit by the lack of nativecall later, quite understandably 07:54
sorear I wonder how hard it would be to get nativecall working on niecza
moritz surely there's already a nativecall interface for mono/.net? 07:55
hoelzro NativeCall, imo, is one of the coolest things about Perl 6^W^WRakudo
moritz n: sub f($a, $b) { }; say &f.signature.perl 07:56
p6eval niecza v21-2-gc592587: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/iV10pdzAmf line 1:␤------> sub f(⏏$a, $b) { }; say &f.signature.perl␤ $b is declared but not used at /tmp/iV10pdzAmf line 1:␤------> sub f($a, ⏏$b) { }; say &f.…
moritz n: sub f($a, $b) { $a + $b }; say &f.signature.perl
sorear moritz: yes, there is a .net nativecall interface
p6eval niecza v21-2-gc592587: OUTPUT«:(Any $a, Any $b)␤»
hoelzro I almost feel that the NativeCall library should be part of the spec
07:56 cognominal left
moritz n: sub f($a, $b) { $a + $b }; say &f.signature.params.perl 07:56
p6eval niecza v21-2-gc592587: OUTPUT«(Any $a, Any $b).list␤»
sorear hoelzro: it absolutely should be 07:57
maybe not a "full synopsis", but its interface should be significantly standardized
hoelzro yeah
moritz maybe not in its current form, but after going through one or two incremental interface optimizations
07:58 cognominal joined
FROGGS @all: IMO every module should run in the end on all platforms/compilers/interpreters with the same behaviour 08:00
there is no need to write extra specs, the docs should be enough, no?
but if you think NativeCall as a "core" module then just the docs are at a different place 08:01
moritz right
FROGGS but hey, I can write a synopsis for my bubblebreaker game ;o) 08:02
sorear FROGGS: NativeCall is an unusual case because of how tied to the runtime it is 08:04
Niecza and Rakudo are likely to have more or less exactly the same Temporal, for instance, in the future, even though Temporal is in the setting 08:05
s/Temporal/DateTime/g
NativeCall is outside the setting, yet I doubt niecza and rakudo will ever share much code there 08:06
08:06 cognominal left
sorear is reading the docs for the .net "NativeCall"-like functionality 08:06
08:08 thou left 08:12 bugi joined, bugi is now known as Guest14777
dalek ecza: f1ac9af | sorear++ | lib/CodeGen.cs:
Use real constant-table entries instead of directly accessing Kernel.FooMO in the code generator
08:18
ecza: 3a9759e | sorear++ | lib/CodeGen.cs:
Remove now-dead code generation for static field access
FROGGS sorear: how can I return my class File::Spec::Unix by pick-guts that is declared in another file?
sorear require File::Spec::Unix; return ::("File::Spec::Unix") 08:19
FROGGS ohh
sorear theoretically you should be able to do just "return File::Spec::Unix" 08:20
08:20 Psyche^ joined
sorear but there are spec problems with the handling of double-colon names 08:20
08:24 Psyche^ is now known as Patterner, domidumont joined, Guest14777 left
sorear I am thinking of speccing "require" to return the object which it treats as a bindable class name 08:25
so that the code for FROGGS would simply become 'return require File::Spec::Unix' 08:26
I would like at least one +1 before I commit to the spec 08:27
FROGGS sounds cool
sorear++
?
moritz nr: say (require Test) 08:29
p6eval niecza v21-2-gc592587: OUTPUT«Unhandled exception: System.NotImplementedException: The requested feature is not implemented.␤ at Anon.1.Run.MAIN.C0mainline (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filename unknown>:…
..rakudo 0e36b2: OUTPUT«Nil␤»
sorear n: say (require "Test")
p6eval niecza v21-2-gc592587: OUTPUT«===SORRY!===␤␤Expressional forms of require NYI at /tmp/eZjBlgmnrD line 1:␤------> say (require "Test"⏏)␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/… 08:30
jnthn Would it desugar to like do { require-primitive Foo::Bar; ::('Foo::Bar') } ?
And if the module doesn't actually have something matching that name, you just get Any or so?
sorear jnthn: per spec, require is supposed to stub Foo::Bar at compile time
jnthn: then install something into it later
I'm just adding a clause that the returned value is the installed value
jnthn S11 says a lot of things :)
Well, require can't really do the installation 08:31
It'd be a product of global merging, no?
sorear Well, "use" is already doing this
Insofar as:
A.pm: my class A { }
b.pl: use A;
finds an object in A.pm and binds it to 'A', without involving global scopes
moritz r: sub f { use Test }; say f()
p6eval rakudo 0e36b2: OUTPUT«Nil␤»
jnthn That will not get you an A unless you add "is export" 08:32
Exporting lexical stuff not marked as "is export" is just wrong.
And it can work without "use" doing any kind of stubbing.
sorear it absolutely will.
moritz sorear: which part? 08:33
jnthn I've considered locating what file to load and handling import and global merging as distinct things ever since EXPORT became lexical. 08:35
sorear they are separate things
jnthn Right, so why is the mere presence of a "use" statement thinking it should do symbol installation?
It's global merging and the stuff in EXPORT that adds any symbols anywhere. 08:36
sorear ok, jnthn
how do you think "need MyClass" works? 08:37
see also S11:181
jnthn That just loads the module in question and does global merging, but doesn't do any kind of import.
sorear there are two import steps in a "use" statement
one of them installs a lexical alias to the module object that is being imported 08:38
the other insgtalls aliases to exported symbols
jnthn "module object" makes no sense to me.
sorear n: use Test; say Test.WHAT
jnthn Also s11 says a lot of conflicting things.
p6eval niecza v21-2-gc592587: OUTPUT«Unhandled exception: Unable to resolve method gist in type Test␤ at /home/p6eval/niecza/lib/CORE.setting line 1293 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1295 (gistcat @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1297 (say @ 7) …
08:39 mucker joined
dalek ecs: d46a8ab | sorear++ | S11-modules.pod:
Spec a useful return value for "require"

This is inspired by some repetitive code being written for File::Spec, see
  irclog.perlgeek.de/perl6/2012-09-14#i_5986754 .
08:45
08:47 wk__ joined, wk_ left, mdupont_ joined 09:00 GlitchMr left 09:03 daniel-s_ joined 09:11 kresike joined
kresike hello all you happy perl6 people 09:11
tadzik kresike! \o/
kresike tadzik, o/ 09:12
Guest33156 0、 09:18
o/ 09:19
tadzik hello
masak hi, Guest33156.
sorear o/ 09:20
Guest33156 hi
why? my name is guest. i have named 09:21
09:22 M_o_C joined
Guest33156 in other service, i have the same set 09:23
but in this service i named Guest
09:24 cogno joined
Guest33156 i don't understand. 09:24
sorear Guest33156: someone else has registered your name.
the system gave you 1 minute to present the correct password 09:25
when you didn't, it renamed you.
Guest33156 oh. 09:26
sorear my advice is to pick a less common name
Guest33156 yes
09:27 Guest33156 left, anuby joined
anuby i renamed 09:27
now i am not the guest. 09:29
sorear welcome, person formerly known as scott__
anuby sorear:how can you got my formerly name? 09:30
sorear moritz: I might put some effort into NativeCall on niecza this month or next, looking over the MSDN docs suggests this is highly possible
09:31 wamba left
sorear anuby: if you run /whois anuby it will tell you a few bits of information 09:31
on irc there are 2 secondary names
anuby sorear:thank, i got it 09:32
sorear your names are currently anuby, scott, and scott
this doesn't prove that you are the same person as scott__, but it's enough to guess
anuby whois sorear
sorear needs the slash in front
anuby yes
09:34 cogno left 09:35 raiph joined
FROGGS sorear: these handles are only initialized if I do File::Spec.new 09:37
is there a good way to come around that without add all the methods that get declared in the ::Unix class? 09:38
raiph blogs.perl.org/users/perl_6_reports...09-02.html
moritz raiph++ 09:39
sorear r: class Foo { method bar { 2 } }; class Bar { method get_foo handles <bar> { Foo } }; say Bar.bar 09:40
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<handles>'; none of these signatures match:␤:(Attribute:D $target, $thunk)␤␤at /tmp/a39kLIiaMg:1␤»
sorear r: class Foo { method bar { 2 } }; class Bar { our $!x handles <bar> = Foo }; say Bar.bar
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Cannot use ! twigil on our variable␤at /tmp/IS22kTlmRA:1␤»
sorear r: class Foo { method bar { 2 } }; class Bar { our $.x handles <bar> = Foo }; say Bar.bar
p6eval rakudo 0e36b2: OUTPUT«No such method 'bar' for invocant of type 'Bar'␤ in block at /tmp/9fDMNGxt12:1␤␤»
sorear r: class Foo { method bar { 2 } }; class Bar { my $.x handles <bar> = Foo }; say Bar.bar
p6eval rakudo 0e36b2: OUTPUT«No such method 'bar' for invocant of type 'Bar'␤ in block at /tmp/Q8cKoaym_v:1␤␤»
sorear r: class Foo { method bar { 2 } }; class Bar { my $!x handles <bar> = Foo }; say Bar.bar
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Cannot use ! twigil on my variable␤at /tmp/XPQCMEG5EM:1␤»
sorear FROGGS: it seems that there is no working way in current Rakudo 09:41
FROGGS: you could use .^add_fallback directly, but don't ask me for the details
FROGGS k, thanks you
k, I'll try something 09:42
raiph moritz: i did this report manually. took me forever. 09:44
09:44 am0c joined
raiph moritz: but the format is intended to be something that's very easy to produce. 09:44
moritz: if there was an appropriate variant of or addition to your irclogging software 09:45
moritz raiph: that can be discussed :-)
raiph: I already have a branch which adds (on request) check boxes
which you can then click, and mark those lines that make up the summary
and then I can add an export function or so 09:46
tadzik raiph: awesome job, thank you! 09:48
moritz raiph: what kind of tools do you want from the IRC logs/ 09:49
?
raiph let me prepare my thoughts for a few minutes... 09:50
FROGGS raiph++
sorear tadzik: what's a nice NativeCall binding to focus on? 09:51
tadzik sorear: DBIish I guess 09:52
that's what stopped me from running źblog an niecza :)
09:53 the joined, the is now known as Guest49709
Guest49709 hey 09:53
can anyone help
sorear Guest49709: not without knowing your problem. 09:54
moritz though maybe the right solution is to make niecza-specific backends for DBIish 09:56
tadzik I think sorear is generally trying to get NativeCall for niecza
sorear let's have sharable NativeCall versions 09:57
but I guess an ADO.NET backend wouldn't be a horrible idea
tadzik: what is źblog?
09:57 cogno joined
tadzik sorear: it's a not-really-blog engine on Bailador 09:58
it's using DBIish, templates and all this
09:59 dayangkun left 10:03 daxim joined 10:05 wamba joined 10:08 cogno left, hypolin left
arnsholt sorear: I'd love to talk about ways to have sharable NativeCalls for Rakudo and Niezca 10:08
sorear arnsholt: can it wait until tomorrow? 10:10
arnsholt Sure
sorear sleep&
arnsholt Sleep well. I'm in no rush 10:11
10:13 anuby left 10:26 gootle left 10:57 kaleem left 10:58 Guest49709 left 11:05 Su-Shee_ joined 11:10 Su-Shee_ is now known as Su-Shee 11:14 drbean joined 11:19 mucker left
raiph sleep& 11:24
moritz sleep well 11:25
11:25 crab2313 joined
eiro hello all 11:30
hoelzro o/ eiro 11:31
11:31 crab2313 left 11:32 crab2313 joined
eiro is there a syntax to create a token within the regexp ? like perl5 named capture ? 11:38
arnsholt Yes
moritz $<foo> = [ regex here ]
arnsholt The <subrule> syntax creates it automatically
eiro qr/(?<id> \d+)/
arnsholt If you don't want to use a subrule, what moritz said 11:39
eiro ok thanks
moritz r: 'abc' ~~ /$<name>=\d+/; say $/.keys
p6eval rakudo 0e36b2: OUTPUT«␤»
moritz huh.
r: 'abc' ~~ /$<name>=\w+/; say $/.keys
p6eval rakudo 0e36b2: OUTPUT«name␤»
moritz it helps to actually match :-)
arnsholt Yeah, that'll work better ^_^
eiro actually i'm trying to figure out what the url dispatching rule from flask '/user/<int:id>' could be written in a perl6 regex 11:40
Su-Shee probably the same way as in the dancer variant whatsitcalled.. bailador.. 11:41
eiro rx( /user/[ $<id> = <digit>+ ] )
arnsholt So, that captures an int named id?
Right
eiro cool!
thanls
arnsholt I think that'll work, yeah
11:42 raiph left
moritz if you don't want to capture each digit separately, use <.digit> 11:42
oh, and you need to escape or quote those slashes
so
arnsholt r: "/user/123" ~~ m{/user/$<id>=[\d+]}; say $<id>
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter / (must be quoted to match literally) at line 2, near "user/$<id>"␤»
arnsholt r: "/user/123" ~~ m{"/user/"$<id>=[\d+]}; say $<id>
p6eval rakudo 0e36b2: OUTPUT«「123」␤␤»
eiro rx( /user/[ $<id> = <digit>+ { fail unless $0 < 1000 ] )
moritz rx{ '/user/' <$id> = \d+ }
eiro it can work ?
moritz, <digit> isn't defined ? i thought it was 11:43
moritz eiro: nobody knows what fail() is supposed to do in regexes
eiro moritz, just don't match :)
arnsholt Digit should be defined
moritz rathr write <?{ $<id> < 1000 }>
arnsholt Er, digit, that is
moritz nr: say '42' ~~ /<digit>/
p6eval niecza v21-4-g3a9759e: OUTPUT«#<match from(0) to(1) text(4) pos([].list) named({"digit" => #<match from(0) to(1) text(4) pos([].list) named({}.hash)>}.hash)>␤»
..rakudo 0e36b2: OUTPUT«「4」␤ digit => 「4」␤␤»
arnsholt Damn sentence case
eiro outch... now i have to put it all together again ... 11:44
arnsholt eiro: perlcabal.org/syn/S05.html#Predefined_Subrules has all the predefined rules
moritz nr: say '/user/42' ~~ rx{ '/user/' $<id>=\d+ $ <?{ $<id> < 1000 }> }
p6eval niecza v21-4-g3a9759e: OUTPUT«#<match from(0) to(8) text(/user/42) pos([].list) named({"id" => #<match from(6) to(8) text(42) pos([].list) named({}.hash)>}.hash)>␤»
..rakudo 0e36b2: OUTPUT«「/user/42」␤ id => 「42」␤␤»
eiro i'll use \d+
moritz nr: say so '/user/12345' ~~ rx{ '/user/' $<id>=\d+ $ <?{ $<id> < 1000 }> } 11:45
p6eval rakudo 0e36b2, niecza v21-4-g3a9759e: OUTPUT«False␤»
eiro p6eval, rx{ '/user/' <$id> = \d+ <?{ $<id> < 1000 }>'}
nr: rx{ '/user/' <$id> = \d+ <?{ $<id> < 1000 }>'} 11:46
p6eval niecza v21-4-g3a9759e: OUTPUT«===SORRY!===␤␤Variable $id is not predeclared at /tmp/qSrg0Y6Yb7 line 1:␤------> rx{ '/user/' <⏏$id> = \d+ <?{ $<id> < 1000 }>'}␤␤Unrecognized regex metacharacter = (must be quoted to match literally) at /tmp/qSrg0Y6Yb7 …
..rakudo 0e36b2: OUTPUT«=␀␀␀=␀␀␀=␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀=␀␀␀=␀␀␀=␀␀␀␤␀␀␀V␀␀␀a␀␀␀r␀␀␀i␀␀␀a␀␀␀b␀␀␀l␀␀␀e␀␀␀ ␀␀␀$␀␀␀i␀␀␀d␀␀␀ ␀␀␀i␀␀␀s␀␀␀ ␀␀␀n␀␀␀o␀␀␀t␀␀␀ ␀␀␀d␀␀␀e␀␀␀c␀␀␀l␀␀␀a␀␀␀r␀␀␀e␀␀␀d
moritz $<id> vs. <$id>
eiro this was just a question mark :)
moritz ok :-)
eiro nr: rx{ '/user/' $<id> = \d+ <?{ $<id> < 1000 }>'}
p6eval niecza v21-4-g3a9759e: OUTPUT«===SORRY!===␤␤Unrecognized regex metacharacter ' (must be quoted to match literally) at /tmp/wD4U5wdcVx line 1:␤------> /user/' $<id> = \d+ <?{ $<id> < 1000 }>'⏏}␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/nie…
..rakudo 0e36b2: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<{ }>, couldn't find final '}' at line 2, near "'/user/' $"␤»
eiro yeah :) 11:47
thank you all
arnsholt <$id> will use the thing in $id as a subrule
eiro i'll talk about perl6 regexp during my pycon talk :)
tadzik wow :) 11:48
11:52 GlitchMr joined 11:53 the joined 11:54 the is now known as Guest9049 11:55 snearch joined
eiro cya all and thanks 12:08
12:09 wamba left
dalek q: 426f666 | GlitchMr++ | answers.md:
`want` in Perl 5 is called `wantarray`, not `wantarry`.
12:10
GlitchMr Also: "easy to understand, explicit scoping rules (unlike Python)" 12:12
It reminds me why Python was rather annoying for me. 12:13
At least Python 3 has 'nonlocal', but it's still annoying
... that `nonlocal` actually reminds me `use` from PHP 12:16
huf i wonder why they went the `nonlocal` way instead of the `use strict` way... 12:17
moritz to break less code, I think 12:18
GlitchMr Why not overload `global`?
huf it'd only affect new code anyway
use strict; aint gon magically appear in a source file
moritz yes, but if you want to use it, you have to fix the whole file
huf or whatever the pythonic equivalent of such a declaration would be
moritz: true
moritz oh, and did I mention that 'nonlocal' is a terrible name?
huf ah well, road to hell, good intentioned paving stones, all that 12:19
moritz why say what it's not?
GlitchMr This is why I think the scoping in JavaScript and Perl is better
moritz if it's not local, what is it? global? file scoped? related to closures? /me has no idea
huf up_yours
err, i mean the blocks
moritz (and if you can't find a good name for a concept, that can be a warning sign too0 12:20
s/0/)/
GlitchMr I wonder how Pythonic would be this instead: 'def inner() using (x):
12:21 mtk joined, kaleem joined
huf GlitchMr: huh, on first glance, that looks saner than nonlocal 12:21
which is amazing, since it's lifted straight from php
arnsholt huf: use strict is right out, since Python doesn't distinguish declaration and use 12:22
huf arnsholt: but with a strict mode, it could, is what i'm saying. 12:23
arnsholt And, I'm pretty sure they want it to stay that way (for some reason)
huf of course, if my aunt had wheels, she'd be the tram
so this is all pointless faffing
arnsholt Well yes, but I don't think van Rossum wants that distinction in Python, for whatever reason
Well true
12:24 benabik left, benabik joined
GlitchMr (also, CoffeeScript, while compiles to JavaScript somehow manages to completely break scoping) 12:25
Su-Shee javascript's scoping is weird. how does coffeescript break it? 12:26
GlitchMr Su-Shee: lucumr.pocoo.org/2011/12/22/implici...feescript/ 12:29
huf i am now very afraid.
GlitchMr JavaScript scoping was fine 12:30
huf i never understood why people think declaring is such a burden that it's worth introducing much more complex and weird interactions to do away with it
GlitchMr It wasn't block scoped, it was function scoped, but other than that it was fine
huf GlitchMr: the hoisting thing is scary as hell tho
function() { a = 1; var a; } /* just... why */
GlitchMr Why somebody would do that 12:31
moritz by accident
arnsholt huf: I agree. Especially since it precludes things like variable name checking, which is really, really nice
GlitchMr Why somebody would assign to variable before predeclaration
declaration*
moritz nr: eval 'say $foo'; my $foo = 42;
p6eval rakudo 0e36b2: OUTPUT«Any()␤»
..niecza v21-4-g3a9759e: OUTPUT«Potential difficulties:␤ $foo is declared but not used at /tmp/qtflYjse8v line 1:␤------> eval 'say $foo'; my ⏏$foo = 42;␤␤Any()␤»
huf GlitchMr: try to imagine a case that's a tiny bit more complex than the example i gave
moritz nr: sub f() { eval 'say $foo' }; my $foo = 42; f()
p6eval niecza v21-4-g3a9759e: OUTPUT«Potential difficulties:␤ $foo is declared but not used at /tmp/DYh7vwN94v line 1:␤------> sub f() { eval 'say $foo' }; my ⏏$foo = 42; f()␤␤42␤»
..rakudo 0e36b2: OUTPUT«42␤»
huf also try to imagine multiple programmers working on code, with differnet skillsets
sometimes some of them are tired
moritz note that variables are block-scoped in Perl 6, it's only the parser that restricts their use to after the declaration 12:32
huf oh heh
arnsholt huf: Also, I am intimately aware that I'm really stupid. I want all the help I can get from the compiler =)
huf arnsholt: oh _yes_ 12:33
Su-Shee I don't even understand his problem in this article..
huf even if we're writing in a goo-language where everything is everything, some bondage is nice
12:33 JimmyZ joined
arnsholt Su-Shee: He wanted to shadow the variable log, but instead it overwrote the global one 12:33
GlitchMr That is - adding variable could break program 12:35
Su-Shee arnsholt: I understood the article. I don't understand what his problem is, but I usally don't get why people have problems with different kinds of scoping..
GlitchMr This simply wouldn't have happen in any other kind of scoping
arnsholt r: my $x = "outer"; { my $x = "inner"; say $x; }; say $x;
p6eval rakudo 0e36b2: OUTPUT«inner␤outer␤»
GlitchMr my/var or nonlocal/use based
arnsholt That's impossible in CoffeeScript, which is a problem since variables and functions share the same namespace 12:36
12:36 kaleem left
arnsholt So it's reasonably easy to overwrite a standard library function, which will lead to non-local failures and other action at a distance bugs, which will probably be hell to debug 12:37
GlitchMr coffeescript.org/#try:%23a%20%3D%20...20%3D%2024
Uncomment first line to see problem
eiro if some want to review my slides: ramirez.u-strasbg.fr/pycon.odp
Su-Shee I think I had maybe one scoping-related mistake every 5 years... 12:38
eiro: what IS "opd"?!
err odp
arnsholt That's because you program in Perl, which is very explicit about scope (as long as you use strict) =)
OpenOffice Presenter, I assume 12:39
12:39 Guest9049 left
arnsholt Or whatever OOo Power Point is called =) 12:39
12:39 Guest9049 joined
Su-Shee arnsholt: I program Perl, JavaScript, SQL, PL/SQL, C, Java, Ruby, Python and Smalltalk .. I don't have problems with different scoping.. 12:39
GlitchMr Also, github.com/jashkenas/coffee-script...ch?q=scope 12:40
Su-Shee ah. I don't have any office programs anymore since 1998. 12:41
arnsholt Right. Then I guess you're just better at it than me =)
kresike What is the point of having a script language compile to another script language ?
Su-Shee arnsholt: that's not it, it's just not my realm of mistakes. 12:42
arnsholt I think the main motivation is that JavaScript has some really weird corners (and Python syntax, obviously =)
Su-Shee kresike: cleanup. coffeescript is the better, nicer javascript.
moritz kresike: the point is to make it run a platform (browser) that accepts just that single language
eiro it's oo presenter
got to go
cya
GlitchMr kresike: also, Perlito also does that 12:43
Su-Shee every DSL does it. ;)
GlitchMr Well, even every C compiler does that 12:44
kresike Instead of writing one of these compilers, maybe people should work on making the original script language better ?
GlitchMr Those compilers compile C to assembly
kresike: tell IE6 to magically improve ;-)
kresike But that would require a perfect world ...
Su-Shee kresike: wake up. how realistic is it that the entire planet switches to "browser x which now has the clean version of javascript"..
which first would require that they decide on one ;) 12:45
Dart? Rust? Coffeescript?
GlitchMr Perlito?
kresike :) Perl ?
GlitchMr Programming for the web using Perl could be fun
Su-Shee no, it's not, one thing that javascript has actually going for itself is the ease of moving function objects around and create objects on the fly thanks to "no classes" and the slightly evented twist in JS.. 12:46
kresike GlitchMr, I believe that _can_ be done
you just need to run it on a server, not a crappy browser ... 12:47
Su-Shee yes, they tried that already in the late 90ies, there was a short loved perl in browser thingie.
GlitchMr kresike: but in browser! 12:48
Su-Shee kresike: browsers aren't crappy, they're amazingly fast and sophisticated rendering engines with events and networking facilities these days. they just lack - for obvious reasons - nice file i/o
GlitchMr I know that you can make CGI in AWK. That doesn't matter.
huf Su-Shee: err..
Su-Shee short lived...
huf Su-Shee: they _are_ rather crappy when you get down to it :)
GlitchMr But in browser, you can only use JavaScript... or compile something to JavaScript
moritz or JVM 12:49
Su-Shee huf: no, they're not. consider the level of crappiness browsers are able to deal with. that's an amazing feat.
moritz what happend to the bad old java plugins?
huf the platform is changing really fast though, and the standards are insane in places, so i think it's understandable
but they're not good. they're perhaps as good as they can be, given circumstances.
kresike Su-Shee, tell that to all the programmers writing hacks to solve stupid problems caused by IE3...10 and all the other who knows what browsers out there ... 12:50
Su-Shee huf: so, what exactly isn't good these days about the technical features of a browser?
huf Su-Shee: UI, stability, speed
Su-Shee kresike: I'm one of them.
huf: WHAT?
kresike Yes, I know you can download a shiny new Chorme with the nice File API and be happy
huf Su-Shee: oh yeah and incompatibility
kresike but only 30% of the users have done that ... 12:51
Su-Shee huf: a) UI isn't a technical category. b) my firefoxes and chromes run with MONTHS of constant uptime - I call that stable for a standalone application which isn't a server and HOW on earth do you get to "speed"?!
huf Su-Shee: *shrug* i had to restart chrome about 10 times yesterday because its inspector suddenly fell over and refused to function. i'm not aware of a sane way to force a complete refresh of all the assets of a website in chrome; it sometimes works, sometimes doesnt. firefox is dead slow. all of them are incompatible with each other in hilarious ways. 12:52
Su-Shee ah, whatever, why do I bother. ok, browsers are bad and a piece of shit and all developers working on them are idiots. ;) 12:54
huf Su-Shee: not what i said.
Su-Shee huf: I didn't say that you said that.
huf what i'm saying is that out of all the things i use, browsers cause me the most grief in every imaginable way.
this might be the best that can be expected, given the way the web is
but i dont like to call this "good"
Su-Shee yeah, whatever. think what you want. 12:55
12:55 benabik left, wamba joined 12:56 mucker joined
[Coke] I think huf's experiences are uncommon. My biggest problem with browsers is writing cross-platform web apps, and that gets muuuch easier when the low bar is at least set to IE8. 13:01
huf my experiences are fairly common among the people i talk to, or my coworkers. install a stock *, wiggle for an hour, shout. 13:02
kill -9, restart, continue
13:03 Woodi joined
[Coke] huf: what's your platform? 13:03
huf debian
moritz debian uses pretty ancient browsers 13:13
the new ones are much better
tadzik which debian? :)
moritz even debian testing uses pretty ancient browsers :(
tadzik unless you mean stable, aka "OSS Museum" they're pretty decent
I don't have that impression
huf sid, but i dont see how this is really relevant. a) chrome is installed straight from google and b) i've seen these things consistently on winxp, win7, ubuntu and debian 13:14
and i dont mean to rag only on chrome, firefox is just as bad in very different ways :)
moritz $work still uses Debian Lenny in production :(
(but I don't use browsers on it :-)
doy i haven't had any significant problem with firefox in a good year or two at this point 13:16
it did used to be pretty bad
but it has improved pretty dramatically lately 13:17
in my experience anyway
Ulti ooo Browser chat, FF is far better than Chrome at dealing with >30 tabs
tadzik I don't see why you need that. Both support bookmarks :) 13:18
huf doy: yes, i see the improvement too. i suppose my main problem is that since it's almost an OS, it's entirely monolithic and i cant mix-and-match like i can on linux
doy what do you want to mix and match? 13:19
Ulti everyone says this to me ;) I genuinely need this many things open at once, plus if I'm offline I still have what I need cached
Su-Shee tadzik: because it's a nice todo/toread list. I usally have about 30-40 tabs open - some constantly (mail), others "to read when time"...
Ulti I use 3 browsers just to have their caches for different projects with all the tabs left open
Su-Shee work alone is 7 tabs.. 13:20
doy perhaps something like conkeror or uzbl is more what you're looking for if that's really important to you
and yeah, i use tabs in preference to bookmarks too
Su-Shee oh, I'm fine. ;)
doy Su-Shee: no, i'm talking to huf
(:
huf could be
doy recent versions of firefox are actually really nice about tab support too - tabs are lazily loaded now, so keeping 80 tabs or so open regularly isn't actually an issue at all 13:21
and the tab groups thing makes it easy to keep them organized 13:22
Su-Shee I've recently subscribed to pinboard and now I actually do bookmark things.. from time to time.
13:22 bluescreen10 joined 13:23 fgomez left
Ulti the key to lots of tabs is flashblock 13:23
Su-Shee what I really need is a proxy locally, capturing everything I've loaded, automatically analysing it, adding keywords and tags and load appropriate lists of suggestions when I input something into the urlbar.
13:24 fgomez joined
Su-Shee "flock" had a similar mechanism in its infancy.. 13:24
Ulti yeah if I had time I'd write my own browser that performs topic allocation on all my tabs and groups them 13:25
PerlJam Ulti: and you're going to write it in perl 6? :) 13:26
tadzik you can extend the existing one :) 13:27
it has gtk and webkit and stuff
Su-Shee it's 8 lines or so ;) 13:28
tadzik that too :)
Su-Shee here, it even has back and forward ;)
github.com/Su-Shee/prettyperl/blob.../webkit.pl
tadzik oh, but that's Perl 5 :) 13:29
github.com/sorear/niecza/blob/mast...browser.pl
13:30 skids joined
Su-Shee "textonly"?! 13:30
tadzik I'm not sure what does that mean
istr it rendered everything just fine
Su-Shee mine has full-blown js support and everything ;)
I think the Webkit lib wrapped even finds flash if available and uses it.. 13:33
13:49 sirrobert joined 13:58 crab2313 left, flightrecorder left 13:59 benabik joined 14:00 FROGGS left 14:04 snearch left 14:05 mtk left, flightrecorder joined, mtk joined 14:07 stopbit joined, thou joined
sirrobert if I have a class A { has $.config_file; has %.config }, I don't quite get how I can use BUILD (or something else?) to call something like .read_config and store it in %.config 14:08
is it that I have to bless the object manually?
ideally, there would be some way that I could hook into the object after it's completely built and do some initialization *after* everything else is done 14:09
14:10 yarp joined, dayangkun joined 14:12 spider-mario joined
moritz BUILD is the right place 14:12
14:12 FROGGS joined
moritz suppose someone inherits from your class 14:12
he wants to be able to call self.config in his BUILD method 14:13
and that only works if you do it at BUILD time
so, what's stopping you from using it in BUILD?
14:14 yarp left, PacoAir joined 14:16 PZt joined 14:19 Circlepuller_ joined
moritz sirrobert: perlgeek.de/blog-en/perl-6/object-c...ation.html # you don't need to call bless if you use BUILD 14:22
14:22 Circlepuller left, Circlepuller joined 14:24 Circlepuller_ left 14:25 fhelmberger left 14:33 yarp joined
yarp r: say "hello" 14:33
p6eval rakudo 0e36b2: OUTPUT«hello␤»
FROGGS r: my $path = '//abc/def///ghi'; $path ~~ s:g|/+| = '/'; say $path 14:35
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near "| = '/'; s"␤»
FROGGS r: my $path = '//abc/def///ghi'; $path ~~ s:g/\/+/ = '/'; say $path
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Confused␤at /tmp/nJqjJCdrQ7:1␤»
FROGGS r: my $path = '//abc/def///ghi'; $path ~~ s:g[\/+] = '/'; say $path 14:36
p6eval rakudo 0e36b2: OUTPUT«/abc/def/ghi␤»
FROGGS ahh
14:40 yarp left 14:51 sqirrel joined 14:58 benabik_ joined 15:01 benabik left, benabik_ is now known as benabik
kresike bye folks 15:06
15:06 kresike left 15:07 yarp joined
FROGGS what OSes do we support right now? 15:08
unix and windows only, right?
tadzik I think so 15:11
FROGGS k, just because of the tests for File::Spec 15:12
tadzik: I removed the roles, and calling the package subs directly, github.com/FROGGS/p6-File-Spec/tree/no_roles
feels cleaner and simpler 15:13
sirrobert moritz: thanks (was AFK a min)
15:13 am0c left
FROGGS advantage: you dont have to declare dummy roles just to auto-add methods from another role 15:13
disadvantage: you have to add all methods to your base class, with params etc 15:14
yarp Can't install Math::Vector due to ...? 15:16
15:20 FROGGS left, flightrecorder left 15:25 dayangkun left, LlamaRider left
colomon perks up at the mention of Math::Vector 15:26
15:28 wk__ left, marmay left
yarp ==> Fetching Math::Vector 15:36
==> Building Math::Vector
Compiling lib/Math/Vector.pm
===SORRY!===
Serialization Error: could not locate static code ref for closure 'block_immediate'
Mu()
build stage failed for Math::Vector: Failed building lib/Math/Vector.pm
in block at lib/Panda/Builder.pm:53
15:38 kaleem joined 15:39 tokuhiro_ joined, fgomez left 15:40 fgomez joined
sirrobert ok, the thing that always throws me off about BUILD is that I can only access the private version, not the accessors. It makes perfect sense, but it's super hard to remember when you're learning. 15:49
That should be something that's emphasized a fair bit in the "BUILD" section of some manual
or whatever.
PerlJam we have a manual? :)
sirrobert a theoretical future manual =)
I will put up a blog post about it right now, actually...
TimToady it's kinda funny, rosettacode.org/wiki/Ackermann_function#Perl_6 runs faster in rakudo than in niecza (actually, doesn't work at all in niecza since I put the memoizing into the proto) 15:52
15:52 stepnem left
TimToady otoh, rosettacode.org/wiki/Truncatable_primes#Perl_6 runs 150 times slower in rakudo than in niecza 15:52
so maybe that would be a good one to profile
jnthn ooh 15:53
And I just stopped having an insane workload :)
jnthn will give it a profile later :) 15:54
TimToady cool
15:54 fgomez left 15:55 kaleem left
skids r: role A [:$i = 1] { method foo { $i.say }}; role B [:$i = 2] { $i.say; also does A[:i($i)] }; class C does B[] { }; my C $c .= new(); $c.foo; 15:57
p6eval rakudo 0e36b2: OUTPUT«2␤Mu()␤»
15:58 am0c joined
skids I could understand where that would be ambiguous when done outside the braces, but how is either form specced? 15:58
jnthn Well, for one the Rakudo behavior on such ambiguity changed last night... 15:59
So now "first one wins".
oh, wait
The roles had differnt names
What ambiguity? :)
JimmyZ rosettacode.org/wiki/Truncatable_primes#Perl_6, rakudo's answer is different? 16:00
only perl 6 one outputs 999983
TimToady the answer is the same, but it runs in 8 minutes rahter than 3 seconds (niecza) 16:01
JimmyZ no , i'm wrong
jnthn skids: Anyway, I think that the "also does" is evalauted once when parsing the role, since it's a trait and those are static.
Thus the $i is not yet defined at that point, thus the Mu.
Roles are macro-ish, but not actually macros :) 16:02
skids jnthn: I mean if you try to feed those role params forward in a role A [*] does B [*] then $i could be the role param or an in-scope $i.
16:02 kaleem joined
jnthn skids: oh 16:02
skids: But that's not ambiguous.
In the same way that sub foo($a) { } is not ambiguous about the scope of the $a :) 16:03
sirrobert r: class A { has $.x; submethod BUILD () { $!x = 4; } } class B is A { submethod BUILD () { $!x = 5; } } say A.new.x; say B.new.x;
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Confused␤at /tmp/bDJO2etryV:1␤»
sirrobert dang, one sec
jnthn It's just a signature on the role
sirrobert r: class A { has $.x; submethod BUILD () { $!x = 4; } }; class B is A { submethod BUILD () { $!x = 5; } }; say A.new.x; say B.new.x;
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Attribute $!x not declared in class B␤at /tmp/H_SuSbSZbo:1␤»
sirrobert is there any way to do that?
to change a property from a super class in a subclass's BUILD? 16:04
skids Point being that role A [*] does role B [*] gets confusing, where the "also does" form is less so.
The other point being that not being able to DWIM above makes it kinda difficult to make a kitchen sink role and then use it as a crony for more specific roles. 16:05
jnthn sirrobert: You don't. 16:06
PerlJam sirrobert: you'd use the public accessor to do that.
sirrobert: B's $!x would be and is different from A's $!x 16:07
jnthn skids: That may or may not be fixalbe.
sirrobert PerlJam: hm ok
jnthn Bit too tired to think clearly enough about it right now :)
sirrobert PerlJam: I didn't realize that
skids It would at least have to start with a spec clarification.
skids lunchtime 16:09
sirrobert $!x is called the "private variable", self.x is the "public accesspr 16:11
accessor"
what would I call the $.x form?
internal?
TimToady that's also just a public accessor, but when used in the has, implies the $!x as well
sirrobert but it's not synonymous with self.x 16:12
how do I refer to the difference?
TimToady it means $(self.x)
likewise @.x means @(self.x) 16:13
sirrobert trying to write a tutorial-type blog entry 16:14
TimToady including the fact that you can pass arguments to the accessor, if .x is really a method instead
sirrobert I want a name for the difference that accounts for this effect:
PerlJam sirrobert++ the more tutorials the better :)
TimToady so you can write @.x(1,2,3) and it means @(self.x(1,2,3))
sirrobert class A { has $.x; submethod BUILD () { self.x = 4; $(self.x) = 5; $.x = 6; } }; say A.new.x;
r: class A { has $.x; submethod BUILD () { self.x = 4; $(self.x) = 5; $.x = 6; } }; say A.new.x;
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Virtual call $.x may not be used on partially constructed objects␤at /tmp/K8YkedqeQ5:1␤»
sirrobert r: class A { has $.x; submethod BUILD () { self.x = 4; $(self.x) = 5; } }; say A.new.x;
p6eval rakudo 0e36b2: OUTPUT«Cannot assign to a readonly variable or a value␤ in submethod BUILD at /tmp/Xj2RefjtY_:1␤ in method BUILDALL at src/gen/CORE.setting:655␤ in method bless at src/gen/CORE.setting:640␤ in method new at src/gen/CORE.setting:625␤ in block at /tmp/Xj2RefjtY_:1␤␤»… 16:15
sirrobert ugh
r: class A { has $.x is rw; submethod BUILD () { self.x = 4; $(self.x) = 5; } }; say A.new.x;
p6eval rakudo 0e36b2: OUTPUT«5␤»
sirrobert the first one doesn't work, the third form does.
16:15 M_o_C left
sirrobert s/form/example/ 16:15
both self.x=4 and $(self.x)=5 work in BUILD 16:16
as does $!x=6
TimToady yes, we arbitrarily disallow the $.x form while the object is still being built
16:16 kaleem left
sirrobert but $.x=7 doesn't 16:16
so ... I need to talk about it as meaningfully different than the other forms ... =)
TimToady because it is in fact a virtual method call 16:17
sirrobert ok
TimToady and we don't want people to think of it as synonymous with $!x when it isn't
sirrobert I can talk about it as the virutal-method accessor
I just needed to be able to say, "you can use the ___ and ___ accessors, but not the ___ accessor" 16:18
during BUILD
TimToady and if people use virtual calls on an incomplete object, they're likely to get the wrong class's method
[Coke] jnthn: did you ever diagnose the rosetta spectest failures on your box? 16:19
TimToady or worse, they'll get the right method on a not-yet built part of the object
sirrobert lunch &
jnthn [Coke]: Yeah, it's newline related 16:20
It (for some reason) chooses to do a custom IO bound to $*OUT that collects the output
16:21 flightrecorder joined, FROGGS joined 16:24 Yazu joined
sergot_ hi o/ ! 16:27
FROGGS hi
16:29 MayDaniel joined 16:32 Yazu left 16:35 bluescreen10 left
[Coke] jnthn: that was so that we could use the code as is from RC. 16:37
(which expects to print to the default handle)
then we can automate the "grab code from RC" bits. 16:38
16:39 bluescreen10 joined 16:40 yarp left 16:42 JimmyZ left
jnthn [Coke]: ah, I see 16:45
16:46 fgomez joined
GlitchMr perl6: so grep {say "Checking $_"; $_ == 2}, 1, 2, 3, 4, 5 16:47
p6eval niecza v21-4-g3a9759e: OUTPUT«Checking 1␤Checking 2␤Checking 3␤Checking 4␤Checking 5␤»
..rakudo 0e36b2: OUTPUT«Checking 1␤Checking 2␤»
16:47 wtw_ left
GlitchMr perl6: so grep {say "Checking $_"; $_ == 4}, 1 .. 1000 16:47
p6eval rakudo 0e36b2, niecza v21-4-g3a9759e: OUTPUT«Checking 1␤Checking 2␤Checking 3␤Checking 4␤»
GlitchMr huh? 16:48
So, Niecza is lazy... sometimes
I guess that depending on whatever it is lazy or not is bad idea
... perhaps because 1, 2, 3, 4, 5 is eager and 1 .. 1000 isn't... 16:49
perl6: so grep {say "Checking $_"; $_ == 4}, (1 .. 1000).eager
p6eval rakudo 0e36b2: OUTPUT«Checking 1␤Checking 2␤Checking 3␤Checking 4␤»
..niecza v21-4-g3a9759e: OUTPUT«Unhandled exception: Unable to resolve method eager in type Range␤ at /tmp/XT0grBHkfi line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4139 (module-CORE @ 571) ␤ at /home…
TimToady you probably want first instead of grep
GlitchMr I know. I was just checking something 16:50
I would use any for that anyways
But... niecza doesn't know .eager?
TimToady well, junctions are only theoretically lazy
might have eager as a listop 16:51
list assignment is supposed to be eager, in a pinch
rosettacode.org/wiki/Truncatable_primes#Perl_6 avoids using 'prime all @x' because that is not lazy 16:52
and I couldn't find a better way to force it than: if prime @x[0] && prime @x[1] && prime @x[2] && prime @x[3] && prime @x[4] && prime @x[5] 16:53
GlitchMr "Highest ltp: 999983"
This is wrong
It should be 998443
TimToady hm, you're right 16:54
16:54 fgomez left
GlitchMr But, it's last prime 16:54
It's last prime, but it isn't left-truncatable prime
TimToady works when I put back the 'prime all @x' 16:55
but slower, obviously, about 15 seconds
oh, duh
needs to be 'and', not '&&'
GlitchMr ;-) 16:56
I guess that debugger would help noticing that error
Or -MO=Deparse, except we don't have that for Perl 6
TimToady and now works again, and back down to 3.6 seconds
GlitchMr Also, I find this grep in grep ugly 16:57
It works, but... I probably would do loop similar to one in Text::Abbrev 16:58
TimToady fixed rosettacode.org/wiki/Truncatable_primes#Perl_6, GlitchMr++ 16:59
spider-mario does “not grep {not prime $^n}, @x” not work, TimToady?
(I mean “is it lazier than all?”)
TimToady yes, it appears to run fast 17:01
GlitchMr I should try doing that too :-)
It sounds fun
TimToady takes 8+ minutes and a hot lap to find that out for rakudo though...
skids r,std: (8 <<+<<< (1,2,3)).say 17:02
erm.
std: (8 <<+<<< (1,2,3)).say
p6eval std cfe8d43: OUTPUT«ok 00:00 44m␤»
skids r: (8 <<+<<< (1,2,3)).say
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix < instead␤at /tmp/UPnUp90kl0:1␤»
TimToady LTM failure, I guess 17:03
r: (8 <<[+<]<< (1,2,3)).say
p6eval rakudo 0e36b2: OUTPUT«16 32 64␤»
TimToady yeah
'course, I'd just write X+< there, and then you can omit the parens around the list 17:04
[Coke] 8m... not adding that to the test suite yet... ;) 17:05
skids TimToady++ and it's prettier.
TimToady r: (8 X+< 1,2,3).say
p6eval rakudo 0e36b2: OUTPUT«16 32 64␤»
TimToady and parses righter
r: (8 «+<« (1,2,3)).say 17:06
p6eval rakudo 0e36b2: OUTPUT«16 32 64␤»
TimToady or that
skids Does the rakudo slowdown on source file encoding kick in with « or only chars with higher codepoints? 17:07
(Because I really really do like « a lot :-) 17:08
17:09 aloha left
TimToady would ignore any such slowdowns until rakudo makes it not slow down :) 17:11
but I think the Latin-1 range is okay
it's the set operators that give it hissyfits, unless they've fixes that recently
*xed
17:12 aloha joined
[Coke] I thought that was fixed. hurmmm. 17:14
TimToady r: say set(1,2,3) ∪ set(3,4,5) 17:16
p6eval rakudo 0e36b2: OUTPUT«===SORRY!===␤Confused␤at /tmp/Re268nOlwq:1␤»
TimToady not fixed enough to put the setops back into the setting, it would seem
n: say set(1,2,3) ∪ set(3,4,5)
[Coke] bet it fails pretty quick, though! ;)
p6eval niecza v21-4-g3a9759e: OUTPUT«set(1, 2, 3, 4, 5)␤»
jnthn pmichaud looked into that during the hackathon but we didn't get to having a fix committed 17:17
17:17 Chillance joined 17:19 thou left
TimToady ooh, the "not grep {not prime $^n}, @x;" runs 50 seconds faster (7ish minutes) than the 'and' form (in rakudo) 17:20
doesn't make difference to niecza, which runs both forms in about 3.5 seconds
17:22 kaare__ joined 17:24 patspam joined
sirrobert back 17:26
17:28 M_o_C joined
mhasch Has Perl 6 now a prime operator? 17:30
17:31 M_o_C left
jnthn TimToady: Is it expected that ltp would take massively longer than rtp? 17:31
Because in the profile I have here, 99% of the time is in ltp, and 1% is in rtp. Commenting out the ltp call, it does indeed to rtp in some seconds. 17:32
TimToady yes 17:35
the problem is that with ltp, you are going against the grain, and can't short-circuit the outer loops 17:36
I tried that, but then it doesn't find the maximum 17:37
(it finds the number with the largest righthand prime instead, which doesn't help)
GlitchMr I've tired using ":q" in Perl 6 REPL 17:39
TimToady mhasch: no, but see rosettacode.org/wiki/Primality_by_t...ion#Perl_6
GlitchMr tried*
(not that I propose to add :q as alias for exit, this would be silly)
[Coke] wonders why "github.com/perl6/specs/commit/d46a...b36144ab1" is "the most useful thing". 17:41
GlitchMr [Coke]: What else you would do? 17:45
Also, this is something I wanted to do in Ruby once
[Coke] if I have an installed perl6, works fine. cd to a rakudo build dir, it fails complaining about something in nqp
guessing it's seeing a path in curdir and following that.
GlitchMr: return nothing? I don't see the point in saying "it's the most useful" without actually explaining why. 17:46
GlitchMr require "MyAwesomeProgram::Plugins::$plugin" 17:47
TimToady the fixed the prime generator in rosettacode.org/wiki/Truncatable_primes#Perl_6, which wasn't calling 2 a prime (though the calling code never asks whether 2 is prime) 17:49
flussence r: use MONKEY_TYPING; augment class Pair { method gist { exit 0 if self.key eq 'q'; callsame } }; say :q 17:50
p6eval rakudo 0e36b2: OUTPUT«␤»
sorear good * #perl6
FROGGS hi sorear
sorear [Coke]: there's an example in there of how it's useful, also a link to the irc log where it came up 17:52
I'm trying to take the forgiveness > permission thing more to heart
[Coke] TimToady: woudl it be faster if you collapsed the junctional return of primes? 17:53
17:54 mucker left
jnthn TimToady: Initial investigation suggests infix:<X> is to blame somehow. 17:54
18:00 raiph joined
TimToady [Coke]: only in the case of composites that haven't already been tested for, which might or might not be significant 18:02
[Coke] I didn't see a significant difference prepending the sub body with a 'so' on rtp 18:04
TimToady and someday someone will write an optimizer that will make junctions smarter about short circuiting
18:06 fgomez joined, benabik_ joined
mhasch the prime code is impressively short. Will sqrt be evaluated only once per prime() call? 18:07
18:08 benabik__ joined, benabik_ left, benabik left, benabik__ is now known as benabik, Chillance left 18:09 Chillance joined 18:12 sivoais left, sivoais joined 18:16 stopbit_ joined, stopbit left, stopbit_ is now known as stopbit 18:19 stopbit left, stopbit joined
TimToady mhasch: good question. it's in a closure due the *, but I don't think that helps 18:20
FROGGS jnthn's debugger might help 18:21
mhasch What would be a good idiom for "all odd numbers from 3 to floor sqrt $i then? 18:22
TimToady I can write it as { $_ > (state $ = floor sqrt $i) } but the difference seems to be in the noise level
18:23 pyrimidine joined 18:24 zby_home joined
TimToady { $_ > (START floor sqrt $i) } ought to work too, but it seems that START forgets its value 18:25
at least in niecza; testing rakudo 18:26
which will take a while
18:26 colomon joined
TimToady jnthn: maybe I should try nested for loops and see what diff it makes 18:27
dalek kudo/nom: a19ce8b | jnthn++ | src/core/LoL.pm:
Make infix:<X> a bit cheaper. This doesn't really deal with what seems to be an algorithmic problem, but it is an easy and noticable win.
18:28
jnthn TimToady: Would be interesting, yeah.
jnthn -> shop
bbiab
mhasch for simplicity, I would just go with: $i > 1 and $i %% none 2, 3 .. floor sqrt $i 18:29
this wastes cucles for odd numbers but not for repeated sqrt. The second solution iterating just over primes is still there. 18:30
cycles
TimToady that will test the evens too
18:31 zby_home left
mhasch Yes, they said even numbers may be eliminated, but it was not a requirement. :-) 18:32
GlitchMr Just wondering, how can I implement operator precedence in Perl 6 grammars? 18:33
geekosaur is {looser|tighter}(op), IIRC 18:34
probably need quoting on the op
timotimo is that the same in grammars?
tadzik good evening
sorear o/ 18:35
geekosaur oh, misunderstood
hm. I am not sure, it would make sense to me to allow that on tokens but I don't know that is allowed 18:36
sorear GlitchMr: use EXPR or use recursive descent
geekosaur (or if that's even been given thought...)
TimToady rakudo handles { $_ > (START floor sqrt $i) }, and it cut down the run time by 5 seconds, which might be an issue if the rest of the program ran in 3 seconds :)
18:37 zby_home joined
GlitchMr sorear: What is EXPR? 18:37
TimToady nr: say 2.sqrt.floor.WHAT 18:38
p6eval rakudo 0e36b2, niecza v21-4-g3a9759e: OUTPUT«Int()␤»
18:38 cognominal joined
TimToady 'course that 5 seconds could also just be noise, when something is running 7 minutes 18:39
sorear GlitchMr: EXPR is one of two related methods which handles operator precedence in perl 6 18:40
18:43 cognominal left 18:44 daxim left
GlitchMr PHP is popular... I guess that PHP features, such as left-associative ?: should be added to Perl 6 18:45
jnthn TimToady: I'd expect the commit I did a moment ago to shave off a bit of that. :)
18:46 wk_ joined
tadzik GlitchMr: ...you're trolling, right? :P 18:46
jnthn TimToady: Will see if I can work out the deeper issue, but it's one of those areas where Pm may grok what's happening an order of magnitude faster than I do.
tadzik or just kiddin g:)
GlitchMr Hmmm... I actually wonder how easy it would be to change associativity of ?? !! with mutable grammars 18:47
jnthn If I don't figger it I'll file a ticket with what I managed to work out, anyways...
tadzik FROGGS: the link is dead, did you merge the branch?
moritz hey, let's use \ as a namespace separator
GlitchMr Also, in PHP !$variable = 42 works. 18:48
jnthn moritz: That's a pretty cool idea. As a Windows user, I like how it'll remind me of file paths.
;)
tadzik ha, that's the solution!
Now we don't need to distinguish between require "name" and require "path" :P
GlitchMr (actually, I have feeling that !$variable = 42 working in PHP is yet another PHP <del>bug</del> feature)
18:49 rurban joined
rurban I just read blogs.perl.org/users/perl_6_reports...02.html#26 about LLVM 18:49
To clarify: LLVM itself is not the right tool for a good dynamic language VM. But there is vmkit on top of LLVM which is the right tool. 18:50
vmkit was the basis for a jvm rewrite (j3) and a .CLR rewrite (c3) on top of LLVM and mmtk (for gc)
bot j3 and c3 have decent performance, j3 same speed to 2x slower than jvm and c3 at about the same speed as .net/mono 18:51
moritz github.com/adambard/functools-for-matlab#readme # why didn't that exist a year ago? :-)
benabik rurban: It's designed around stack based machines? 18:52
rurban Which would lead to a nqp performance of about 10x faster, my,guess.
llvm is stack and register based.
You can use both.
benabik Right. But is vmkit?
rurban vmkit is stack based which translates to registers 18:53
moritz afaict most modern VMs do that 18:54
rurban When I'm finished with the basic parrot fixes I'll start a little implementation just to test performance of some simple ops. calling a function and do some arith
benabik wonders how it does with continuations. 18:55
rurban I don't like the lorito approach which looks like a full LLVM rewrite. Why rewriting it when you can just use it?
No continuations at all.
I do'nt think nqp needs needs continuations. Normal exceptions
GlitchMr raiph: feather.perl6.nl/~glitchmr/rakudo-bin.html 18:56
I've made quick Perl 5 script which makes it easier to use my already compiled Rakudo Star
I probably could compile more Rakudo Star releases, but that probably wouldn't be too friendly for disk space. It's limited. 18:57
benabik rurban: Pity. Continuations are wonderful for supporting many control flow styles... 18:58
rurban If you can make fast continuations work in vmkit, fine :) 18:59
benabik Although as a PhD student, I probably shouldn't say "pity" to open problems.
rurban Most scheme's have fast and slim continuations, so it should be possible
GlitchMr Every Rakudo Star needs different NQP. But perhaps using this same Parrot version for every compilation would work.
sorear rurban: rakudo doesn't need full continuations, but coroutines are mostly indespensible 19:00
GlitchMr But I don't know how to make configuration where Parrot is somewhere and NQP is compiled for Perl 6
TimToady I know, let's port nqp to run on Scheme... :D
rurban coro's should be possible.
TimToady now I have an unbound number of problems.. 19:01
rurban Most scheme's are not good enough to handle nqp. Maybe gambit
TimToady was kidding, mostly
GlitchMr ... when I try using --gen-nqp, NQP is pushed to Parrot directory. Because of that I cannot use this same Parrot installation for older Rakudo Star releases.
TimToady Perl 6 is not designed to require continuations, in any case 19:02
19:02 eternaleye joined
rurban But I need a month or two. I also need to keep the p5p folks busy. They just started half-ass signatures 19:02
tadzik (: 19:03
TimToady
.oO(P6 is not a menu of features for P5)
tadzik you mean p5-mop started, and p5p will stop going "naay" in 4 years or so? ;)
[Coke] if you want to use the same parrot or same nqp, you probably want to build your own dist, not use star. 19:04
no?
doy started laying the groundwork for signatures, you mean
d:
and as far as i can tell, p5p is generally positive about p5-mop
rurban perl5.git.perl.org/perl.git/shortlo...signatures 19:05
tadzik oooo
that's some good news
TimToady well, sigs are one of those things that won't work terribly well without a good type system 19:06
*cough* smartmatching *cough*
19:06 xinming_ joined
rurban And since doy refused to parse types nor allow type traits we are lost 19:06
doy seriously, i'm not refusing anything
and "we are lost" overstates the situation pretty significantly 19:07
rurban And can throw my type system approach away because it will not work in functions.
tadzik honestly, I'd be fine with Just Not Having To Type 'use Fun' everywhere :)
rurban doy: you have no idea. that's the problem.
doy tadzik: yes, that is the starting point
atrodo use Fun;
doy rurban: things would go a lot easier if you would stop assuming that
rurban then why do you leave it out. parsing sigs is almost the same as parsing MYTERM. my (@args) = @_; 19:08
jnthn This belongs on #p5p, not here.
rurban Sorry, yes.
doy we've already had this discussion on #p5p 19:09
TimToady hugme: hug rurban and doy
hugme hugs rurban and doy
19:09 Util_ is now known as Util
tadzik you can try #p6p now :P 19:09
doy (:
19:09 nohack joined, xinming left
rurban maybe perl6 can teach the p5p folks something, on #p6p5 19:09
TimToady well, not insulting people is part of it 19:10
19:11 ChanServ sets mode: +o jnthn, jnthn sets mode: -b *!*@*.tele.dk, jnthn sets mode: -o jnthn
tadzik exhales 19:11
jnthn (removing the over-general ban from yesterday)
TimToady whew!
jnthn huh? :) 19:12
oh...no, I wasn't gonna kick anyone :P
Just remembered I'd said I'd remove the ban :)
Hopefully we don't get any more compliments on shopping around for the best prices. :P 19:13
TimToady: I think X is managing to (expensively) evaluate the various sublists again and again.
Or something like that.
TimToady your fix took about a minute off
lemme try it with nested fors 19:14
jnthn Well, it wasn't a fix for the Real Problem.
Yes, if nested fors are a bunch faster it'll probably confirm my guess at what's going on.
TimToady indeed, reduced it from 6m20 to 0m19 19:16
[Coke] O_o 19:17
tadzik :) 19:18
jnthn yeah, that's the kinda difference I was looking for :)
TimToady so now is only about 5 times slower than niecza, a great improvement over 150
updating RC 19:19
jnthn Right. And it matches my tracking down of the issue to infix:<X>
I guess one would need to be really careful in fixing this so as not to break the laziness. 19:20
Think I'll delegate it, either to Pm or to a cleverer future me :) 19:22
dinner, then will write what I figured out into an RT &
TimToady revised ltp for rosettacode.org/wiki/Truncatable_primes#Perl_6 19:23
19:31 the joined 19:32 the is now known as Guest97872 19:35 Guest9049 left 19:37 am0c left 19:43 fgomez left, thou joined 19:45 rhr joined
TimToady npr: say START { 42 } for 1..5; 19:45
p6eval niecza v21-4-g3a9759e: OUTPUT«42␤Nil␤Nil␤Nil␤Nil␤»
..pugs: OUTPUT«42␤42␤42␤42␤42␤»
..rakudo a19ce8: OUTPUT«Mu()␤Mu()␤Mu()␤Mu()␤Mu()␤»
[Coke] ISTR pugs is cheating. 19:46
TimToady npr: say BEGIN { 42 } for 1..5;
p6eval rakudo a19ce8, niecza v21-4-g3a9759e, pugs: OUTPUT«42␤42␤42␤42␤42␤»
TimToady it should work like that
npr: say INIT { 42 } for 1..5;
p6eval pugs: OUTPUT«42␤42␤42␤42␤42␤»
..rakudo a19ce8, niecza v21-4-g3a9759e: OUTPUT«Nil␤Nil␤Nil␤Nil␤Nil␤»
TimToady that one too
moritz nr: say INIT 42 19:47
p6eval rakudo a19ce8, niecza v21-4-g3a9759e: OUTPUT«Nil␤»
moritz nr: say START 42
p6eval rakudo a19ce8, niecza v21-4-g3a9759e: OUTPUT«42␤»
moritz nr: for 1 { say START 42 }
p6eval rakudo a19ce8, niecza v21-4-g3a9759e: OUTPUT«42␤»
moritz nr: for 1..3 { say START 42 }
p6eval rakudo a19ce8: OUTPUT«42␤42␤42␤»
..niecza v21-4-g3a9759e: OUTPUT«42␤Nil␤Nil␤»
TimToady bugses
19:48 fgomez joined
moritz it seems rakudo has problems with START in statement-modifying loops 19:48
TimToady nr: for 1..3 { say INIT 42 }
p6eval rakudo a19ce8, niecza v21-4-g3a9759e: OUTPUT«Nil␤Nil␤Nil␤» 19:49
sorear phasers in niecza need to remember more values, yeah
moritz submits rakudobugs
sorear r: for 1..2 { say START 42 for 1..2 }
p6eval rakudo a19ce8: OUTPUT«42 42␤42 42␤»
sorear r: for 1..2 { say (START 42) for 1..2 }
p6eval rakudo a19ce8: OUTPUT«Mu()␤Mu()␤Mu()␤Mu()␤»
TimToady which maybe points to some recloning differences 19:50
moritz r: say START 42 for 1
p6eval rakudo a19ce8: OUTPUT«42␤»
moritz r: say START 42 for 1, 2
p6eval rakudo a19ce8: OUTPUT«42 42␤»
TimToady the loop is in the START
moritz r: say START { 42 } for 1, 2
TimToady I think...
p6eval rakudo a19ce8: OUTPUT«Mu()␤Mu()␤»
[Coke] r: die Rat 19:51
p6eval rakudo a19ce8: OUTPUT«No such method 'VAR' for invocant of type 'Rat'␤ in method Str at src/gen/CORE.setting:736␤ in method message at src/gen/CORE.setting:8866␤ in block at /tmp/Qze2qvSsN_:1␤␤»
[Coke] pn: die Rat
npr: die Rat
p6eval pugs: OUTPUT«*** Died␤ at /tmp/lDbpwqSABF line 1, column 1 - line 2, column 1␤»
..niecza v21-4-g3a9759e: OUTPUT«Unhandled exception: Rat()␤ at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5) ␤ at /tmp/PVNnpEKTEK line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4139 (module…
..rakudo a19ce8: OUTPUT«No such method 'VAR' for invocant of type 'Rat'␤ in method Str at src/gen/CORE.setting:736␤ in method message at src/gen/CORE.setting:8866␤ in block at /tmp/eebqU_qFVL:1␤␤»
moritz r: for 1, 2 { say START 42 } 19:52
p6eval rakudo a19ce8: OUTPUT«42␤42␤»
sorear npr: der Rat # surely?
p6eval pugs: OUTPUT«*** No such subroutine: "&der"␤ at /tmp/bJNM2gqaGu line 1, column 1 - line 2, column 1␤»
..niecza v21-4-g3a9759e: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'der' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /home/…
..rakudo a19ce8: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&der' called (line 1)␤»
TimToady anyhoo, the prime test oughta just be able to put: @primes ...^ * > START $i.sqrt.floor 19:53
moritz sorear: or die Ratte :-)
FROGGS right
FROGGS always wanted to have a german perl 19:54
TimToady the a workshop about those
*there's
FROGGS 'was a joke 19:55
a friend of mine used to use german varnames in his delphi code
its horrible to read
moritz FROGGS: $work code is all German. Well, mostly. I hate it. 19:56
FROGGS yay, like SAP does ;o)
moritz FROGGS: writing non-English commit messages simply doesn't work for me
well, we're not quite as big as SAP :-)
tadzik I once read a code in Hungarian
I promised myself never to do that to any living being
sorear calling all undead programmers 19:57
FROGGS moritz: I mean the fieldnames in SAP are german, like PERNR for Personalnummer (employeenumber)
our american colleges just dont know what it means 19:58
but you have to work with it
moritz FROGGS: :(
sorear that's... not even that hard
FROGGS and when you want to switch to another module (transaction), these abbreviations are german too 19:59
sorear "I guess it's a personnel number of some kind"
and if you abbreviate stuff enough it becomes unscrutable even in the same language
FROGGS sorear: what is ANREX?
sorear FROGGS: I'd guess it's an oil exploration company
FROGGS it is the titel, like Mr. or Mrs.
moritz 'anrede' 20:00
but I wouldn't have guessed that from ANREX eitehr 20:01
sorear what, they don't want you to enter it as (forgot the list of common Germanic prenominals. Herr?)
FROGGS moritz: Anredetext 20:02
sorear: ya, its Herr and Frau
I actually dont know if you can use Mr. there
moritz FROGGS: do you work a lot with SAP? 20:03
FROGGS btw, SAP R/3, the standard installation, has more than 100 thousand tables
the docs for these tables are on 1900 pages (ebook)
sorear 50 tables per page? 20:04
FROGGS moritz: I usually have to provide interfaces to SAP, I'm not doing the SAP part, but the other side
moritz so
sorear recalls once having SAP and S&P confused
(Standard & Poor is a financial institution in the US best known for maintaining the "S&P 500", a stock market index) 20:05
moritz FROGGS: I'm working on a homegrown program that fills the same "all business-related functions" corner 20:06
and the original author was often trying to be smart
20:06 bluescreen10 left
moritz there are things like flags stored as characters, and their codepoint is used as a foreign key in another table 20:07
FROGGS hehe, nice
20:07 bluescreen10 joined
moritz if it's 'a' in this table, it's 97 in another table 20:07
sorear moritz: abusing VARCHAR() as a set type?
FROGGS so you have strings which contain several foreign keys to other tables? 20:08
moritz sorear: I don't think so, since there's only ever one of such characters. It's a complete mystery to me why it was done that way
jnthn back 20:09
moritz and we have a column called 'bla', because the original author didn't bother to give it a proper name
FROGGS what the
moritz and now several applications share the same DB, and renames are non-trivial
('name' would have been an appropriate name of that column. It wasn't something hard to find a name for) 20:10
FROGGS but you killed him with fire, right?
moritz no, he's in the board of directors 20:11
FROGGS -.-
sorear
.oO( it's not too late )
moritz oh, and there's a custom error handling system (like Try::Tiny but in crazy) 20:12
and lots of other fun
FROGGS and thats at your new $work? 20:13
moritz but it's "only" about 50k lines of perl code
FROGGS: yes
[Coke] moritz: If it weren't for updating legacy systems, I'd have a much worse paying job. But I do like it when I can do something new from the ground up instead.
FROGGS 50k for Try::Tiny::Crazy?
no way
moritz FROGGS: no, for the entire application
including all the craziness 20:14
FROGGS all right
[Coke] is in the middle of cleaning up 3 kilolines of coldfusion, if that makes you feel better, moritz. :)
moritz [Coke]: I've been patching Net::Whois::RIPE, which was a very welcome distraction
20:15 inokenty joined
moritz a small, isolated(-ish) module that still does something useful, not too much legacy :-) 20:15
[Coke]: actually I don't feel very bad. I like to complain a bit, but all in all it's still a nice job
[Coke] moritz: sounds about right. :) 20:16
[Coke] chuckles at "who is ripe"
moritz not all parts are crazy, and we have some nice tools too (push to quality assurance and built of debian packages in a single command)
SQL diffs for schema changes 20:17
and there's also a heavily patched OTRS installation to maintain when I'm tired of our CRM system :-) 20:18
FROGGS but it is always good to have something to complain about ;o) 20:21
moritz aye 20:22
and now for something completely different 20:23
sleep
good night :-)
sorear good night moritz
FROGGS gnight
20:30 fgomez left 20:32 mdupont_ left
jnthn eval print 'a]' =~ /a]/ 20:34
buubot_backup jnthn: 11
20:37 GlitchMr left 20:38 fgomez joined 20:41 erkan joined, bluescreen10 left
skids r: my @b = (1,2,3); @b[* <<-<< (1,2)].say; @b[* X- (1,2)].say; 20:45
p6eval rakudo a19ce8: OUTPUT«3 2␤Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:716␤ in sub infix:<-> at src/gen/CORE.setting:2526␤ in block at src/gen/CORE.setting:11934␤ in sub coro at src/gen/CORE.setting:5346␤ in …
jnthn skids: Expecting that to whatever-curry? 20:47
skids Wondering what the X- does to the whatever that the hyperop doesn't. 20:49
jnthn oh, the first one *did* surry
*curry
skids I suppose the hyperop knows it has an item on the lhs, while the X- not necessarily. 20:52
20:56 kaare__ left
skids decommute 20:58
21:00 leont joined 21:01 crab2313 joined 21:03 skids left 21:07 Targen joined 21:15 benabik left 21:22 MayDaniel left
masak ahoj, #perl6 21:25
tadzik o, hej masaku 21:26
21:26 pyrimidine left
sorear jo, masak 21:26
jnthn dobry vecer, masak 21:27
21:27 benabik joined
dalek p: c810874 | jnthn++ | src/QRegex/P5Regex/Grammar.nqp:
Toss P6Regex leftover.
21:28
p: 37cb811 | jnthn++ | src/QRegex/P5Regex/Grammar.nqp:
Parse non-alphanumerics without a meaning as literal characters to match.
p: f1027a4 | jnthn++ | t/p5regex/rx_charclass:
Test for /a]/.
21:30 zby_home left 21:36 Targen left 21:39 leont left 21:40 huf_ joined
dalek p: 1a194af | jnthn++ | / (2 files):
Fix \B, plus a test.
21:40
kudo/nom: ba04210 | jnthn++ | tools/build/NQP_REVISION:
Get latest NQP for P5Regex improvements.
21:48
kudo/nom: d624613 | jnthn++ | t/spectest.data:
Run S05-modifier/perl5_1.t.
ast: fe3a0da | jnthn++ | S05-modifier/perl5_1.t:
Rakudo unfudges.
tadzik hmm. I saw plenty of those in Oslo. Do you know the name of an input device wich is like a touchpad, but physically moves under your finger? 22:05
jnthn trackball? 22:07
tadzik no, not a ball. It was a shape of a touchpad
FROGGS and you move it like a mouse?
tadzik no, the device itself isn't moving 22:08
hmm
imagine a touchpad, where the layer you touch is movable
...but the touchpad itself stays in place
sorear how big is the moving piece?
FROGGS so you move that surface like a joystick
sorear 10 mm^2? 22:09
tadzik sorear: like a regular laptop touchpad
22:09 Guest97872 left
jnthn hmm, dunno then. 22:09
sorear does it rotate?
tadzik internally, I believe so
from the users' point of view, it just moves under your finger
masak I think I know what you mean. I don't know the name of those, though. 22:11
FROGGS can't find it using google, so it doesn't exist 22:12
22:13 am0c joined
masak 'night, #perl6 22:13
FROGGS gnight masak
22:13 supernovus joined
FROGGS something like a "contour shuttleexpress" 22:14
?
this retail.contourdesign.com/?/products/22 22:15
tadzik nah 22:16
let me draw this
supernovus Hmm, going through the logs, tadzik mention HTTP::Easy was broken. In testing now, it seems to bind only to localhost. Attempts to connect from an external address do not work. I am assuming something has changed in Rakudo's IO::Socket::INET library?
tadzik supernovus: the thing I noticed broken is something related to header parsing
i.imgur.com/CzJwW.jpg 22:19
this thing is rubber and striped
supernovus Ah. This library has not received much love. It was written to be a drop in replacement for HTTP::Server::Simple when that library was not compiling against Rakudo nom. Most of my web app testing, I use the SCGI protocol for the apps instead of HTTP. I'm still planning on writing a FastCGI library for those who prefer FastCGI to SCGI. In the meantime, if you can file a bug against HTTP::Easy, 22:20
I'll see what I can do about fixing its header parsing issues.
tadzik 'tis some Buf/Str confusion I think
FROGGS tadzik: maybe a suberpuck? 22:21
your drawing is, well, how should I say, "not that helpful"
22:21 cognominal joined
tadzik :) 22:21
hey, I tried :P 22:22
supernovus tadzik: Oh, that makes sense now. Both HTTP::Easy and HTTP::Client need to be rewritten to work with Buf. When they were last worked on, there was no Buf implementation available (in Rakudo at least, I need to test all of my libraries against Niecza yet.)
tadzik I see
supernovus: HTTP::Easy works fine
at least Bailador works fine, and it uses HE under the hood
22:26 benabik left 22:29 crab2313 left
supernovus That's good to hear. 22:30
jnthn rest... & 22:33
22:33 crab2313 joined 22:39 stopbit left 22:43 skids joined 22:45 cognominal left 22:46 cognominal joined 22:47 crab2313 left
sorear tries and fails to find a reference to tadzik's device 22:48
tadzik: do you know any of mthe people who had them?
we could ask
oslo.pm mailing, maybe
22:54 cognominal left 22:56 spider-mario left
dalek rl6-roast-data: dad623b | coke++ | doit:
Clarify that these commits are not attended.
22:59
rl6-roast-data: 746f725 | coke++ | p (2 files):
today (automated commit)
rl6-roast-data: 7a116b3 | coke++ | p (2 files):
today (automated commit)
rl6-roast-data: 1f77bf9 | coke++ | / (4 files):
today (automated commit)
rl6-roast-data: 7c8ddc7 | coke++ | / (4 files):
today (automated commit)
23:10 supernovus left 23:18 Targen joined 23:25 wamba left 23:29 dayangkun joined 23:32 benabik joined
dalek ast: 5c64ac0 | coke++ | S06- (2 files):
niecza fudge
23:41
osystem: e62cc8b | (Tobias Leich)++ | META.list:
added File::Spec
23:53
FROGGS \o/
Unix code is done
gnight 23:55