»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by moritz on 25 December 2014. |
|||
00:05
FROGGS[tab] left
00:07
spider-mario left
00:20
koo6 joined
00:27
atroxaper joined
00:32
atroxaper left
00:35
gfldex left
00:50
gfldex joined
|
|||
raydiak sees moritz++'s .assuming commit, and wishes again that .assuming skipped positionals w/* as spec^Wdesigned | 00:57 | ||
+yoleaux | 25 Dec 2014 11:21Z <FROGGS> raydiak: github.com/rakudo/rakudo/commit/50...8daabc548f | ||
raydiak | oh cool | 00:58 | |
m: class Foo { method bar ($a) {say $a} }; my &bar = Foo.^lookup('bar').assuming: Foo; bar "Merry Christmas" | 01:00 | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«Merry Christmas» | ||
01:00
Rounin left
01:03
jack_rabbit joined
01:14
jack_rabbit left
01:27
KCL_ joined
01:30
KCL left,
beastd left
01:31
profan joined
01:32
skids joined
01:38
awoodland left
01:51
vike1 left
01:56
vike joined
02:07
koo6 left
02:18
atroxaper joined
|
|||
BenGoldberg | m: (^100).pick(*).map: { start { sleep $_; .say } } | 02:19 | |
camelia | rakudo-moar 8e5c5e: OUTPUT«Could not spawn thread: errorcode -1» | ||
02:20
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk,
Guest97106 left
|
|||
BenGoldberg | r: Scalar.new = 5 | 02:20 | |
02:20
rmgk_ is now known as rmgk
|
|||
camelia | rakudo-parrot 8e5c5e: OUTPUT«(signal SEGV)» | 02:20 | |
BenGoldberg | r: Scalar.new = 5 | ||
+camelia | rakudo-parrot 8e5c5e: OUTPUT«(signal SEGV)» | ||
..rakudo-moar 8e5c5e: OUTPUT«Cannot call method 'BUILDALL' on a null object in method bless at src/gen/m-CORE.setting:952 in method new at src/gen/m-CORE.setting:941 in block <unit> at /tmp/tmpfile:1» | |||
02:22
atroxaper left
|
|||
BenGoldberg | r: my $x = 0;my \x = Proxy.new: FETCH => { $x++; say "[$x]"; return $x };say x; say "DONE" | 02:24 | |
camelia | rakudo-parrot 8e5c5e: OUTPUT«[1]No such method 'postcircumfix:<( )>' for invocant of type 'Int' in any at gen/parrot/BOOTSTRAP.nqp:1712 in sub say at gen/parrot/CORE.setting:16531 in block <unit> at /tmp/tmpfile:1» | ||
..rakudo-moar 8e5c5e: OUTPUT«[1]Cannot invoke object with invocation handler in this context in sub say at src/gen/m-CORE.setting:16623 in block <unit> at /tmp/tmpfile:1» | |||
02:28
[particle]1 joined
02:29
nebuchad` joined
02:32
grim_ joined,
BooK joined,
mr-fooba_ joined
|
|||
BenGoldberg | nqp-j: nqp::const::asdfwerty | 02:33 | |
camelia | nqp-jvm: OUTPUT«(signal ABRT)» | ||
BenGoldberg | nqp-j: nqp::const::asdfwerty | ||
camelia | nqp-jvm: OUTPUT«(signal ABRT)» | ||
BenGoldberg | nqp-j: nqp::const::asdfwerty | ||
camelia | nqp-jvm: OUTPUT«(signal ABRT)*** Error in `java': double free or corruption (!prev): 0x00007f8da401a9f0 ***» | ||
02:34
telex left,
telex joined
|
|||
BenGoldberg | nqp-j: say(nqp::mod_i(3,3)) | 02:36 | |
camelia | nqp-jvm: OUTPUT«(signal ABRT)*** Error in `java': double free or corruption (!prev): 0x00007f6ecc01a9f0 ***[thread 140113920362240 also had an error]» | ||
BenGoldberg | nqp-m: say(fc("Moar")) | 02:38 | |
camelia | nqp-moarvm: OUTPUT«Cannot invoke null object at /tmp/TIy6VkfInS:1 (<ephemeral file>:<mainline>:25) from gen/moar/stage2/NQPHLL.nqp:1239 (/home/camelia/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:eval:172) from gen/moar/stage2/NQPHLL.nqp:1432 (/home/camelia/rakudo-ins…» | ||
BenGoldberg | nqp: say(fc("Moar")) | ||
camelia | nqp-moarvm: OUTPUT«Cannot invoke null object at /tmp/tmpfile:1 (<ephemeral file>:<mainline>:25) from gen/moar/stage2/NQPHLL.nqp:1239 (/home/camelia/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:eval:172) from gen/moar/stage2/NQPHLL.nqp:1432 (/home/camelia/rakudo-inst-1…» | ||
..nqp-jvm: OUTPUT«(signal ABRT)*** Error in `java': double free or corruption (!prev): 0x00007fc35001a9f0 ****** Error in `java': double free or corruption (fasttop): 0x00007fc350009810 ***# There is insufficient memory for the Java Runtime Environment to continue.# pthread_g…» | |||
..nqp-parrot: OUTPUT«Could not find sub &fccurrent instr.: '<mainline>' pc 46 ((file unknown):38) (/tmp/tmpfile:1)» | |||
02:40
yubimusubi joined
02:43
go|dfish1 joined
02:49
mr-foobar left,
nebuchadnezzar left,
go|dfish left,
BooK_ left,
[particle] left,
ka05 left,
Possum left
|
|||
skids | So I tried Net::SSH2 via Inline::Perl5 and ran into a snag. Can't do <$ssh_handle> in perl6 and a Net::SSH2::Channel P5Obj's .read($buf,$count) method does not alter buf. Wonder if there is a different way to invoke a read on a P5Object that is an IO. | 02:53 | |
aha. .READLINE from the tie interface works. \o/ | 03:09 | ||
03:23
Ben_Goldberg joined
03:26
BenGoldberg left
03:43
atroxaper joined,
Mso150 joined
03:46
Ben_Goldberg left
03:50
noganex joined,
xinming_ left
03:51
Mso150 left,
vendethiel left
03:52
xinming joined
03:53
vendethiel joined,
noganex_ left
03:57
araujo left
04:03
araujo joined
04:14
sirdancealot joined
04:38
autark joined
05:12
yeahnoob joined
05:14
atroxaper left
05:15
atroxaper joined
05:16
atroxaper left
05:21
sirdancealot left
05:24
sjdy521 joined
|
|||
sjdy521 | ada | 05:24 | |
05:25
KCL_ left,
vendethiel left
05:26
vendethiel joined
05:27
sjdy521 left
05:37
yeahnoob left
05:40
sirdancealot joined
05:51
mr-fooba_ left
05:56
isBEKaml joined
06:07
mr-foobar joined
06:17
autark left
|
|||
raydiak | since it isn't quite over in my time zone...merry christmas to all, and to all a good night o/ | 06:23 | |
06:24
isBEKaml left
06:36
sirdancealot left
06:38
kaleem joined
06:56
frew joined
07:03
mr-foobar left,
adu joined
07:07
[Sno] left
07:30
risou is now known as risou_awy
07:39
mickcy_ca joined
07:43
kaare_ joined
07:57
anaeem1 joined,
anaeem1 left
07:58
anaeem1_ joined
08:00
go|dfish1 is now known as go|dfish
08:04
dayangkun joined
08:05
dayangkun left
08:09
xfix joined
08:14
gfldex left
|
|||
mickcy_ca | Does anyone have any idea of a timeline for the Conjectular stuff, and the "not reviewed properly" stuff in design.perl6.org/S32/IO.html will be completed? | 08:18 | |
08:21
FROGGS[tab] joined,
darutoko joined
08:22
isBEKaml joined
|
|||
FROGGS[tab] | mickcy_ca: lizmat++ is working hard on file io... you can ask her | 08:27 | |
mickcy_ca | A assume that lizmat++ is not on line here right now. | ||
08:30
mickcy_ca left,
mickcy_ca joined
|
|||
mickcy_ca | lismat: I am wondering if you have any idea as to a timeline for design.perl6.org/S32/IO.html conjectural and "not reviewed properly" items. | 08:31 | |
moritz | \o | 08:32 | |
timelines in #perl6 land are usually "when we get around to it" | |||
mickcy_ca | moritz: I kind of figured that ... was just wondering if anyone had a round-tuit for pipes and sockets | 08:33 | |
FROGGS[tab] | I did something for pipes recently... but I did not review S32 | 08:34 | |
mickcy_ca | Curious, what was done? | 08:35 | |
I may find it useful for a Perl 6 port I am doing. | 08:36 | ||
moritz | seems like pipe was fixed on the parrot backend | 08:39 | |
08:42
Akagi201_ joined,
Akagi201 left
08:47
adu left
08:48
virtualsue joined
09:00
isBEKaml left
09:14
vendethiel left
09:16
vendethiel joined
09:20
telex left
09:21
Mso150 joined,
dj_goku left
09:22
telex joined
09:27
rindolf joined
09:30
dj_goku joined,
dj_goku left,
dj_goku joined
|
|||
mickcy_ca | moritz: Sorry went away for a bit, is pipe a built in function? | 09:34 | |
FROGGS[tab] | yeah, it was about passing cwd and our env hash dowm the pipe :o) | ||
mickcy_ca | Ah. | ||
FROGGS[tab] | and that we get the status code of the child process or so | 09:35 | |
and something about the filehandles we want to read from | 09:36 | ||
mickcy_ca | Curious, do you know how to create a Unix Domain Socket? | 09:38 | |
From within Perl 6 | |||
moritz | mickcy_ca: pipe is both a sub and a method on IO::Path | 09:41 | |
09:46
isBEKaml joined
09:47
virtualsue left
09:49
dj_goku_ joined,
dj_goku left
09:51
rurban joined
09:58
[Sno] joined
09:59
zakharyas joined
10:03
andreoss joined
|
|||
mickcy_ca | moritz: Been reading advent ... Is .pipe an improvement upon the issue that I was having yesterday? Refresh, pipe opens interfering with File::Find, even though no execution path leads to the statement. | 10:05 | |
andreoss | perl6-m's repl doesn't work with TERM=dumb | ||
repl with any other backend works | 10:06 | ||
moritz | mickcy_ca: no idea | ||
mickcy_ca | <sigh> | ||
andreoss | without supporting TERM=dumb perl6-m repl cannot be used inside emacs properly | 10:08 | |
mickcy_ca | About Unix Domain Sockets ... I have been doing some reading in S32, and have been left wanting about what I can actually do with them. IO :: Socket :: INET seems to implement IP networking through sockets, but IO :: Socket itself is a role. Would I be able to implement my own class that just deals with raw data? | 10:09 | |
andreoss: That explains why blocking happens on open, but not why the code interferes with File::Find when the open is not even called. | 10:10 | ||
moritz | mickcy_ca: yes; you could probably use NativeCall to call the C functions you need to create the socket | ||
mickcy_ca | YAY, more reading. | 10:11 | |
10:12
isBEKaml left
10:13
isBEKaml joined
|
|||
mickcy_ca | moritz: Do you know if zavlolaj is part of the current Rakudo? | 10:13 | |
moritz | mickcy_ca: it's not; you can install it with panda | 10:14 | |
mickcy_ca | Ok. | ||
moritz | mickcy_ca: or use rakudo star (though thta's kinda out of date), which bundles it | ||
mickcy_ca | Would rather be on bleeding edge for up-to-date features and discussion on what really works NOW that need to use panda. | 10:15 | |
I mean, not need to use panda. | |||
10:23
vendethiel left
|
|||
dalek | c: d73ca23 | moritz++ | lib/Type/Supply.pod: Add some examples to Supply methods documentation |
10:28 | |
10:29
vendethiel joined,
spider-mario joined
10:30
anaeem___ joined
10:32
anaeem1_ left
|
|||
Timbus | mickcy_ca, the Socket::INET module was written to simply expose parrot's already-existing socket capabilities to rakudo. the idiot who wrote it was not thinking of a 'real', robust solution which would involve proper bindings to the c sockets library | 10:33 | |
if someone were to make nativecall bindings to such a library.. that would be pretty neat | 10:34 | ||
10:34
hekmek joined
|
|||
mickcy_ca | That would be awesome ... better than pretty neat. | 10:35 | |
Unfortunately, I have not programmed in C since college ... many moons ago. | 10:36 | ||
dalek | ar: ac97143 | moritz++ | docs/announce/2014.12.md: 2014.12 draft release announcement |
||
xfix | Perl 6 is neat, but the reality is that people still use COBOL. | 10:37 | |
moritz | "many moons ago", muhaha | ||
mickcy_ca | LOLOLOLOL | ||
xfix | For example, I checked sample high school exit exam from IT (yeah, I'm still in high school). It has tasks like "count number of distinct character in text s, and return the result r" (also, the task says to assume r < 100). | 10:39 | |
10:39
anaeem___ left
|
|||
xfix | You can write the solution in C, C++, Java, or Pascal. The sample solution has obvious buffer overflow, and uses O(N^2) algorithm. | 10:39 | |
masak | good antenoon, #perl6 | 10:40 | |
xfix | When in Perl 6, I could just write $r = +$s.comb.Set | ||
moritz | \o masak | 10:41 | |
feedback on github.com/rakudo/star/blob/master...2014.12.md very welcome | |||
xfix | (oh, and the sample solution assumes that everything fits in 8-bit) | 10:42 | |
I don't understand the point of those stupid exams that don't really require anything. | 10:43 | ||
10:43
zakharyas left
|
|||
mickcy_ca | There is really no point to them, except to test your state of mind at the time of the exam. They do nothing to examine any possibility of future retainment of said knowledge. | 10:45 | |
moritz | xfix: for somebody who never programmed before, they are a real hurdle | ||
10:45
Mso150 left
|
|||
mickcy_ca | moritz: if somebody has never driven before ... same problem. | 10:45 | |
xfix | They aren't mandatory... | 10:46 | |
mickcy_ca | Shouldn't take the exam if not prepared. | ||
moriz: The announcement looks fine ... can't comment on the content though. | 10:48 | ||
isBEKaml | moritz: s/Varios/Various/ | ||
moritz: I'm not sure about this one - we still have $*DISTRO and $*KERNEL, right? | 10:49 | ||
dalek | ar: 576754e | moritz++ | docs/announce/2014.12.md: fix typo in announcement, isBEKaml++ |
10:50 | |
moritz | m: say $*DISTRO.name | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«opensuse» | ||
mickcy_ca | what is meant by " 'for' remains as it is n" | ||
"slurping rest from handle" -> slurping the rest from the handl | 10:51 | ||
handle ... | |||
Timbus | i assume that's meant to read: 'for' remains as it is now | 10:52 | |
xfix | Also, why limit to C, C++, Java, and Pascal. | ||
Not everybody wants to write code like codepad.org/MuOKmHox | |||
dalek | ar: 6bfb316 | moritz++ | docs/announce/2014.12.md: Fix more typos, mickcy_ca++ |
||
xfix | When I can just r = len(set(s)) | ||
isBEKaml | moritz: maybe it's just me - I read `map` as a function and `Map` as a Key-value data structure. Perhaps it'd be better to say .map when you mean the function and Map for the structure... | 10:56 | |
moritz: in the point of 'for' as an alias for 'map' | |||
moritz | isBEKaml: that's why the line begins with "Method" | 10:57 | |
isBEKaml | moritz: also, since this is a Star release - maybe you could add some notes about new modules added? | ||
moritz | to make it clear that it's not a data structure | ||
isBEKaml: no new modules added | |||
isBEKaml: and since module authors usually don't keep changelogs, I can't comment on changes in the modules :( | 10:58 | ||
isBEKaml | moritz: ah, modules.perl6.org repo? :-) | ||
10:58
bjz joined
|
|||
isBEKaml | moritz: I don't want to add more work to release maintainers if it's not worth the cost. | 10:59 | |
moritz++ # Star release | 11:02 | ||
dalek | on: f21c417 | moritz++ | lib/JSON/Tiny.pm: Change .map to .for for forward compatibility |
11:04 | |
11:05
isBEKaml left
|
|||
mickcy_ca | Good night all ... | 11:08 | |
11:09
mickcy_ca left
11:11
virtualsue joined
|
|||
vendethiel | moritz++#star | 11:26 | |
xfix | gist.github.com/xfix/734b904b95c2052c50b2 | 11:27 | |
Those are module changes for Rakudo Star. | |||
moritz | xfix: thanks! | 11:32 | |
xfix | Feel free to include important parts, or something. | 11:33 | |
11:34
nebuchad` is now known as nebuchadnezzar
|
|||
xfix | In Rakudo Star 2014.09 displays help like "panda update -- Display information about specified modules". | 11:34 | |
Which is wrong description (it's intended to be a definition of "info", not "update"). | |||
11:35
dakkar joined
|
|||
moritz | looks correct in 2014.12 | 11:35 | |
dalek | ar: bb488b7 | moritz++ | docs/announce/2014.12.md: Include modules changelog, xfix++ |
11:36 | |
xfix | "library names" | 11:37 | |
Sorry, I just fixed that 2 minutes ago. | |||
(although, I believe there are other misspellings as well) | |||
(oh well, I don't really know English) | |||
dalek | ar: 43e6655 | moritz++ | docs/announce/2014.12.md: typo, xfix++ |
11:38 | |
moritz neither | |||
xfix | There were also some fixes for Rakudo (depreciation notices), but considering they didn't exist in 2014.09, it doesn't matter. | ||
dalek | ar: b8f06b8 | moritz++ | docs/announce/2014.12.md: Mention an incompatible change |
11:40 | |
xfix | moritz, by the way, have you got my hack.p6c.org application I sent by e-mail? | 11:43 | |
moritz | xfix: no, my email account is currently inaccessible; please use [email@hidden.address] for now | 11:44 | |
xfix: and sorry for the hassle | |||
xfix | Oh, okay. | ||
I sent it to [email@hidden.address] so I guess that's why. | 11:45 | ||
moritz, sent | 11:46 | ||
Also, I just realized those packages aren't for Debian Testing. | 11:47 | ||
Oh well, I can compile fish myself anyway. | |||
11:50
kaleem left
|
|||
moritz | xfix: I haven't got a mail from you yet | 11:52 | |
*gotten | |||
xfix | Oh, right, I again put the wrong e-mail | ||
Argh. | |||
I sent two mails to wrong e-mail. | |||
sorry for spam | 11:53 | ||
moritz, ok, now it should be sent | |||
I apologize for the issue. | |||
moritz | xfix: account added, have fun! | 11:56 | |
xfix | Thanks. | 11:57 | |
Connected. | |||
Now I wonder... | |||
Hm, connected with screen and irssi and default settings, and I see Camelia. | 11:58 | ||
moritz | somtimes, Unicode isn't hard :-) | 11:59 | |
xfix | With LANG=C, I see >>?<<. | 12:00 | |
But with any reasonable LANG, I see Camelia. | |||
I wonder what issue masak is seeing. (gonna check PuTTy with Cygwin, often this particular SSH client causes problems) | |||
Right, and PuTTy requires private key files in its odd format. | 12:02 | ||
moritz | puttydefaults defaults to some legacy encoding, iirc | ||
xfix | Yes, I know. | ||
But I see Camelia in irssi as well. | 12:03 | ||
Without changing sets (huh?). | |||
Hm, PuTTy now defaults to UTF-8. | 12:05 | ||
When forcing ISO-8859-1, I get »ö« | 12:07 | ||
moritz | \o/ | ||
12:07
hekmek left
|
|||
xfix | Hm, strange... | 12:07 | |
I wonder where the LC variables come from. I know that they come from SSH session, but what if they aren't defined (will run ssh now without environment set). | 12:10 | ||
env -i ssh hack.p6c.org | 12:11 | ||
12:11
risou_awy is now known as risou
|
|||
xfix | There is /etc/profile, but it says nothing about LANG. | 12:12 | |
/etc/default/locale. Ok. | |||
The only thing I can think of is LC_ALL, but why anyone would set it? | 12:14 | ||
(and LC_MESSAGE, I guess) | 12:16 | ||
export LC_ALL=en_US.UTF-8 | 12:17 | ||
Right... | |||
That explains everything. | 12:18 | ||
12:23
BenGoldberg joined
|
|||
xfix | The server has five locales defined - C, C.UTF-8, de_DE.UTF-8, en_US.UTF-8, and POSIX. | 12:23 | |
12:23
virtualsue left
|
|||
xfix | While the old server has 827 locales defined... fun? | 12:24 | |
masak, can you run "screen", and in "locale", and paste the output somewhere? I think something odd is going on with environment variables. | 12:25 | ||
in screen "locale"* | |||
12:41
sergot left
12:43
sergot joined
|
|||
masak | xfix: gist.github.com/masak/c1ec1b34aad88b5d51c1 | 12:43 | |
xfix | And here we have the issue. | 12:44 | |
nb_NO.UTF-8 locale is not installed on hack.p6c.org. | |||
So, either those have to be replaced, or moritz has to install nb_NO.UTF-8. | |||
timotimo | shouldn't we mention non-blocking i/o to be in progress for moar and jvm, too? | 12:45 | |
timotimo is currently editing the announcement anyway | |||
moritz | sure | ||
masak: nb_NO.UTF-8 locale generated | 12:46 | ||
timotimo | was that "sure" for me? | ||
moritz | timotimo: sure :-) | ||
timotimo | just wanted to make sure | ||
xfix | masak, if it doesn't work, restart irssi and screen. | 12:47 | |
timotimo | is the "some module tests fail" part of the JVM version still true? | 12:48 | |
dalek | ar: 1df8fdf | timo++ | docs/announce/2014.12.md: tiny changes to the announcement |
12:50 | |
12:50
sergot left,
sergot_ joined
12:51
sergot_ is now known as sergot
|
|||
xfix | Hm, no perl6 binary on a server. | 12:52 | |
moritz | xfix: github.com/perl6/infrastructure-do...rakudobrew | ||
xfix | Ok, neat. | 12:53 | |
Shouldn't it be in /etc/profile.d? | |||
moritz | we even have documentation; you'd just have to read it :-) | ||
no | |||
since many users want to compiler their own, it would be potentially harmful to have it in the default path | |||
xfix | ok | ||
Why is .rakudobrew-bash a hidden script? | 12:54 | ||
moritz | timotimo: I'm now testing star-j build | ||
12:54
BenGoldberg left
|
|||
moritz | xfix: mostly inspired by the rakudobrew documentation using .rakudobrew as the default path | 12:55 | |
xfix | It's intended to be used by users, so IMO it shouldn't have a dot (although, considering that people may already use it, it's probably a good idea to make a link) | ||
12:56
masak left
12:57
masak joined
|
|||
masak | \o/ | 12:57 | |
xfix++ | |||
moritz | xfix: linkified | ||
masak | ☺ ☺ ☺ ☺ ☺ ☺ \☺/ | ||
oh, that's nice. | |||
timotimo | it seems like indirect method calls are still marked - on the feature matrix | 13:00 | |
timotimo edits | 13:01 | ||
moritz | also a good test to see if updating the feature matrix works from cron | ||
timotimo | oh, could it be that's not about "new Blurb: 1, 2, 3"? | ||
moritz | it's about that, yes | 13:03 | |
timotimo | m: my $mn = "say"; my $num = 100; $num."$mn"(); | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«100» | ||
timotimo | that also works, though | ||
dalek | atures: 2de106f | timo++ | features.json: indirect method calls (a la new Foo: 1, 2, 3) work |
13:04 | |
xfix | github.com/perl6/infrastructure-doc/pull/1 | ||
vendethiel | m: sub infix:<<"->">>($a, $b) { $a."$b"; } ; say 5->"succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/Or9wKoyvzLQuoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.at /tmp/Or9wKoyvzL:1------> sub infix:<<"->">>($a, $b) { $a."$b"⏏…» | ||
xfix | (not sure why I don't have access to infrastructure-doc repository, but whatever) | ||
vendethiel | m: sub infix:<<"->">>($a, $b) { $a."$b"(); } ; say 5->"succ"; | 13:05 | |
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/DMzthByVoaUnsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy blockat /tmp/DMzthByVoa:1------> <"->">>($a, $b) { $a."$b"…» | ||
vendethiel | :( | ||
dalek | frastructure-doc: db019f6 | (Konrad Borowski)++ | hosts/hack.p6c.org.pod: Mention the updated rakudobrew-bash path. |
13:06 | |
frastructure-doc: ec7f273 | moritz++ | hosts/hack.p6c.org.pod: Merge pull request #1 from xfix/patch-1 Mention the updated rakudobrew-bash path. |
|||
xfix | Also, resource limits. Neat, I remember how often did the build process freeze taking lots of memory making the server unusable, and had to be restarted. I understand that you are expected to use `ulimit`, but it only helps before it happens. | 13:07 | |
vendethiel | m: sub infix:<<"->>">>($a, $b) { $a."$b"(); } ; say 5->>"succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/QCMAJF8dWzUnsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy blockat /tmp/QCMAJF8dWz:1------> "->>">>($a, $b) { $a."$b"…» | ||
vendethiel | well. | ||
moritz | xfix: you should also have direct push access to the infrastructure-doc repo | 13:08 | |
xfix | Thanks. | ||
timotimo | vendethiel: are you sure you want " inside the <<? | ||
vendethiel | no. | ||
m: sub infix:<< -> >>($a, $b) { $a."$b"(); } ; say 5->"succ"; | |||
timotimo | m: sub infix:<<< ->> >>>($a, $b) { $a."$b"(); } ; say 5->>"succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/folc1zP8PUUnsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy blockat /tmp/folc1zP8PU:1------> < -> >>($a, $b) { $a."$b"…» | ||
rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/xy8yoKJSbsMissing blockat /tmp/xy8yoKJSbs:1------> sub infix:<<< ->> ⏏>>>($a, $b) { $a."$b"(); } ; say 5->>"su» | |||
xfix | m: sub infix:["->>"]($a, $b) { $a."$b"(); } ; say 5->>"succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/KMjyyZbem4Colon pair value '"->>"' too complex to use in nameat /tmp/KMjyyZbem4:1------> sub infix:["->>"]⏏($a, $b) { $a."$b"(); } ; say 5->>"succ"» | ||
xfix | Too complex? | ||
timotimo | m: sub infix:<['->']($a, $b) { $a."$b"(); } ; say 5->"succ"; | 13:09 | |
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/GMP7TUO8aGMissing blockat /tmp/GMP7TUO8aG:1------> sub infix:<['->⏏']($a, $b) { $a."$b"(); } ; say 5->"succ» | ||
timotimo | m: sub infix:['->']($a, $b) { $a."$b"(); } ; say 5->"succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/puhOcHVdZJColon pair value ''->'' too complex to use in nameat /tmp/puhOcHVdZJ:1------> sub infix:['->']⏏($a, $b) { $a."$b"(); } ; say 5->"succ";» | ||
timotimo | hm. | ||
xfix | m: sub infix:«->>»($a, $b) { $a."$b"(); } ; say 5->>"succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/zyW0EokQNrUnsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy blockat /tmp/zyW0EokQNr:1------> x:«->>»($a, $b) { $a."$…» | ||
xfix | m: sub infix:«->>»($a, $b) { $a."$b"(); } ; say [->>] 5, "succ"; | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«6» | ||
vendethiel | ooooh | ||
m: sub infix:<< -> >>($a, $b) { $a."$b"(); } ; say [->] 5, "succ"; | |||
camelia | rakudo-moar 8e5c5e: OUTPUT«6» | 13:10 | |
xfix | Hm, so the -> rule triggers before ->>, even with LTM for some reason. | ||
vendethiel | nice :D | ||
xfix | Probably a bug. | ||
dalek | ar: 36cc147 | moritz++ | modules/svg-plot: Update to newer SVG::Plot |
13:11 | |
raydiak | \o g'mornin butterflies, camels, etc... | 13:13 | |
xfix | \o raydiak | ||
moritz | good morning, raydiak lambdafly | ||
xfix | 20GB of RAM and 1TB of hard drive space feels so huge compared to old 3.5GB of RAM and 100GB of hard drive space. | 13:14 | |
(we currently use 710MB of RAM, excluding memory cache) | 13:15 | ||
moritz | we are lucky to have so many and so generous donors | 13:17 | |
xfix | Yes... | ||
raydiak | aye, /me was looking at prices on a server like that | ||
13:17
gfldex joined
|
|||
xfix | Even buying 4GB of RAM server costs (I have 1GB of RAM on my own server that is used for stuff). | 13:17 | |
moritz | raydiak: that one was O(2k EUR) | 13:18 | |
raydiak | I have half a gig on my vps, but the ssd handles swapping okay to make up for it | ||
yep...a bit outside my price range atm :) | |||
xfix | 2k EUR is definitely way too much for me ;-). But that's probably because I'm still a student. | 13:19 | |
raydiak | oh moritz...this lambdafly can haz hack.p6c.org account? | ||
moritz | raydiak: sure; what username do you want? | 13:20 | |
xfix | Will have to go now. | ||
13:20
xfix left
|
|||
raydiak | moritz: can I have "x"? | 13:20 | |
\o xfix | |||
alternatively, raydiak works fine :) | |||
moritz | raydiak: I'm not thrilled by 'x' as a user name, so I'll go with raydiak | 13:21 | |
raydiak | understandable | ||
13:23
kjs_ joined
|
|||
raydiak | passwd: Authentication token manipulation error | 13:24 | |
passwd: password unchanged | |||
moritz | huh | ||
raydiak: that means you entered the old password incorrectly | 13:25 | ||
raydiak | m) right...5 AM here | ||
andreoss | m: my $x := lazy {sleep 1; 10} | 13:32 | |
camelia | ( no output ) | ||
andreoss | why it takes time? | ||
why isn't sleep call deferred? | 13:33 | ||
s/:=/=/ | 13:35 | ||
moritz | andreoss: it's called start { } | ||
m: my $before = now; start { sleep 2 }; say now - $before | |||
camelia | rakudo-moar 8e5c5e: OUTPUT«0.0075080» | ||
andreoss | moritz: start is a Promise, i want just lazy evaluation (i want to defer evaluation until i need this $x ) | 13:36 | |
moritz | andreoss: and that's what a Promise gives you, just call .result when you need it | 13:37 | |
andreoss: doing stuff lazily just in a scalar doesn't work out | |||
andreoss: because the asignment type-checks, and the type check needs a value, for one | 13:38 | ||
andreoss | moritz: Promise will start a thread as I know | ||
m: my @x := lazy { gather for 1..10 {sleep $_; $_} } | 13:39 | ||
neither works | |||
camelia | rakudo-moar 8e5c5e: OUTPUT«(timeout)» | ||
moritz | gather already is lazy | ||
m: my @x := do gather for 1..10 {sleep $_; take $_}; say 'here' | 13:40 | ||
camelia | rakudo-moar 8e5c5e: OUTPUT«here» | ||
andreoss | m: my @x := do gather for 1..10 {sleep $_; take $_}; | 13:41 | |
why timeout? | |||
camelia | rakudo-moar 8e5c5e: OUTPUT«(timeout)» | ||
moritz | andreoss: probably something tries to use the return value of your program | 13:42 | |
oh | |||
it's called in sink context, but badly :( | |||
andreoss | i'm trying this stuff in repl, having a second statement on the line somehow prevents eager evaluation | 13:45 | |
moritz | andreoss: the "P" part of the REPL is to blame here | ||
andreoss: to print the return value, it has to evaluate it | 13:46 | ||
roaringbitmap.org/ something to use for char classes in regexes? | 13:47 | ||
13:47
araujo left
|
|||
andreoss | moritz: it should print something else than | 13:48 | |
no lazy scalars in perl6? | 13:50 | ||
raydiak | perl6 -e (no repl) does the same thing...perhaps the return value of the last statement in the program is used for the exit code, in that case | 13:51 | |
FROGGS_ | unlikely | 13:52 | |
raydiak | then it's pretty clearly broken | 13:53 | |
FROGGS_ | m: my @x := gather for 1..10 {sleep $_; take $_}; | 13:54 | |
camelia | rakudo-moar 8e5c5e: OUTPUT«(timeout)» | ||
raydiak | but | 13:55 | |
m: my @x := gather for 1..10 {sleep $_; take $_}; say 0 | |||
camelia | rakudo-moar 8e5c5e: OUTPUT«0» | ||
raydiak | but then | ||
m: lazy my @x := gather for 1..10 {sleep $_; take $_}; say 0 | |||
camelia | rakudo-moar 8e5c5e: OUTPUT«(timeout)» | ||
vendethiel | raydiak: I think our "lazy" does not do much atm | 13:56 | |
raydiak | vendethiel: it's clearly doing something here...just the opposite of what is expected | ||
moritz | lazy is just for lists | ||
raydiak | yeah I know I'm using it wrong, that's kinda beside the highly mysterious point, no? | 13:57 | |
andreoss | btw why no lazy scalars? | ||
moritz | andreoss: I tried to explain earlier | ||
irclog.perlgeek.de/perl6/2014-12-26#i_9854857 | 13:58 | ||
andreoss | moritz: but haskell type-checks too | ||
14:01
kjs_ left
|
|||
andreoss | ok. seems i get it | 14:01 | |
moritz | andreoss: at compile time, yes. Perl 6 must do it at run time | ||
andreoss | i guess though it could be done via some Lazy class, like my Lazy[Int] @x = ... | 14:02 | |
s/@x/$x/ | 14:03 | ||
14:05
andreoss left
14:17
andreoss joined,
andreoss left
|
|||
timotimo | unless someone updated the feature comparison matrix manually, the cron job seems to work | 14:18 | |
can someone comment on "Precedence and associativity of new operators | 14:19 | ||
" where the footnote is "still some bugs"? | |||
14:19
araujo joined
|
|||
timotimo | and also the "andthen" and "orelse" footnote "missing exception semantics" is (IIRC) wrong | 14:19 | |
14:19
xfix joined
|
|||
timotimo | also, i'd suggest we put a proper footnote onto the +/- of LoL, since we have some LoL support nowadays, even some multi-dimensional-array slicing | 14:20 | |
xfix | Hm, lazy strings. | 14:21 | |
I think that slurp could use lazy strings, but anything else? | |||
moritz | xfix: the main application is reegx matching against streams | 14:22 | |
xfix | With mmap, slurp could be lazy. | ||
14:23
Rounin joined
|
|||
moritz | not from STDIN | 14:27 | |
xfix | Yes, STDIN is an issue. | 14:28 | |
moritz | but the bigger issue is really that the grammar engine assumes it knows the length of the input string | ||
which is very incomatible with streaming | 14:29 | ||
xfix | How to represent size_t in Zavolaj? | 14:32 | |
moritz | int iirc | 14:33 | |
xfix | uint, ok | ||
14:38
vendethiel left
|
|||
xfix | How can I define ... function? | 14:40 | |
int open(const char *path, int oflag, ...); | |||
14:41
vendethiel joined
|
|||
FROGGS[tab] | look at zavolaj's readme and examples or tests | 14:42 | |
xfix | Eh, open won't help me much. | 14:43 | |
It needs constants from fcntl.h. | 14:44 | ||
Perl 5 has them in metacpan.org/pod/Fcntl | |||
And int open() is sysopen function. | |||
Or I guess, POSIX::open. | 14:45 | ||
I need POSIX::open in order to implement low level mmap. | |||
(how else I would get value of O_RDONLY) | 14:46 | ||
moritz | by copinyg it from the source | 14:47 | |
xfix | Great, but various operating systems have different O_RDONLY. | ||
moritz | or by writing a small C lib that has a function that returns it | ||
xfix | I guess. | ||
It's probably better to write C wrapper anyway. | |||
moritz | see Inline::Perl5 for an example that such stuff | 14:48 | |
xfix | How can I make a Perl 6 package that compiles C code? | ||
moritz | see Inline::Perl5 for an example that such stuff | ||
xfix | ok | ||
Which depends on LibraryMake. | 14:49 | ||
github.com/retupmoca/P6-LibraryMake/ | |||
ok | |||
moritz | which does much of the hard work | 14:50 | |
URI::DefaultPort::scheme_port gives a Null Pointer access on the JVM | 14:54 | ||
and lots of things depend on that (like all the LWP::Simple tests) | 14:55 | ||
man, testing stuff on r-j is painfully slow | 14:57 | ||
15:03
vendethiel left
15:04
vendethiel joined
15:05
khisanth_ joined
15:07
Khisanth left
|
|||
moritz | moritz.faui2k3.org/tmp/rakudo-star-....12.tar.gz # release preview | 15:08 | |
15:09
guru joined
15:10
dakkar left
15:11
salv0 left
15:25
ilogger2 left,
dakkar joined,
virtualsue joined
15:27
colomon left
15:28
salv0 joined
|
|||
skids | \o/ new star. Now I have something to do today :-) mortiz++ | 15:32 | |
moritz | not yet released, officially | ||
skids | Good enough for me :-) | ||
I don't mind kicking tires. | 15:33 | ||
itz | I'm trying the moar build on FreeBSD/clang | 15:35 | |
masak .oO( is it called "clang" because the error messages are so noisy? ) :P | 15:36 | ||
15:37
xdbr joined
|
|||
xfix | What am I doing wrong? I have my sub p6_open(Str $path) returns int32 { * }, and my int32 $fd = p6_open $path; | 15:37 | |
And I get "This type cannot unbox to a native integer" error. | |||
$path is Str. | 15:38 | ||
itz | I notice clang is quite slow for one or two files in moar as well | ||
TimToady | yes, interp is triggering some kind of O(N^2) or so | 15:39 | |
15:39
xdbr left
|
|||
raydiak | m: END say my $a; END $a = 'mildly surprising'; | 15:43 | |
+camelia | rakudo-moar 8e5c5e: OUTPUT«mildly surprising» | ||
TimToady | looks fine to me :) | 15:44 | |
xfix | ok, dealt with the issue | ||
raydiak | why do END blocks run in FILO order? | ||
15:45
Rounin left,
dakkar left
|
|||
xfix | How can I get file length? | 15:47 | |
moritz | $path.IO.s | ||
xfix | thanks | ||
15:49
colomon joined
|
|||
moritz | it's really hard to operate services on the public Internet and not becoming paranoid | 15:49 | |
raydiak | raydiak: because S04 says so | 15:50 | |
xfix | moritz, I agree. | 15:51 | |
Everything tries to attack you. | |||
Oh wait, it's just you concerned about services running in the background. | |||
Odd... open system call returns -1, and I don't know why. Checking errno shows "No such file or directory", even if the file exists. | 15:54 | ||
(hm... strace perhaps?) | |||
open("/etc/passwd", O_RDONLY) = 13 | 15:56 | ||
hm... | |||
Looks correct for me... | |||
TimToady | raydiak: in particular, S04:1502 | 15:57 | |
synopsebot | Link: perlcabal.org/syn/S04.html#line_1502 | ||
TimToady | oh, wait, that was you talking to yourself, so you already found it | 15:58 | |
raydiak | TimToady: me and I are still arguing about why, though | ||
raydiak find moritz's paranoia contagious, opens auth.log to soothe himself, and sees chinese scriptkiddies trying to brute-force his root password | 16:01 | ||
TimToady | raydiak: it's because earlier declarations tend to be more generic and later ones are more specific, and usually setup and teardown want to happen in the opposite order | 16:04 | |
itz | apt-get install fail2ban | 16:05 | |
raydiak | fail2ban++ ...been a long time since I needed to worry about it, mostly the probing scripts stumble blindly past my non-standard ssh port (which is no actual security, granted) | 16:06 | |
itz | the new standard non-standard port is 2222 ;) | 16:07 | |
xfix | I use different SSH port on my server, because bots trying to access bother me, but considering that the SSH is intended to be publicly available here, well, fail2ban in my opinion. | 16:08 | |
raydiak is ahead of the standard curve :) | |||
xfix | (on my server, SSH port is 98) | ||
raydiak | 10022 here | ||
16:10
Vlavv left
|
|||
skids | I just pick good passwords and don't worry about it. If I'm being especially paranoid I'll set up the tarpitting. If I worried about all the doorknob twists in my line of work I'd go crazy. | 16:12 | |
+dalek | ecs: c6e6ed4 | TimToady++ | S04-control.pod: clarify tiebreaking for phasers |
16:13 | |
raydiak | TimToady: that makes total sense; it just feels a little less "procedural" than I was thinking at the moment | 16:16 | |
but then that's what phasers do | |||
timotimo | so ... what is the @autovivs argument to bless and BUILDALL and friends for again? | ||
TimToady | never heard of it | 16:17 | |
xfix | Ok, mmap could be tricky because of how Perl 6 interpreter currently does stuff with strings it doesn't even have to. | 16:18 | |
timotimo | it takes a hash of "attrinit" and an array "autovivs" that is not used inside the function any more | ||
xfix | Whatever, it doesn't matter. | ||
timotimo | maybe it's what the * argument to bless was supposed to be for? | ||
moritz | timotimo: it has something to do with the autovivification chain in things like my %h; %h<a>[0] = 42 | 16:19 | |
timotimo | oh, hmm | ||
xfix | I created a neat native code library, so... | ||
TimToady | I'd think those would keep their own chain rather than be passed explicitly | ||
xfix | And root is reading /var/log/auth.log in meantime. | ||
raydiak | S12:818 mentions "These are used to initialize superclasses." | 16:20 | |
synopsebot | Link: perlcabal.org/syn/S12.html#line_818 | ||
TimToady | that is, when you generate a WHENCE, it knows if it has dependencies already, I'd think | ||
moritz | somehow fail2ban doesn't do anything here :( | ||
timotimo | oh, right, that's a NYI thing | 16:21 | |
TimToady | I don't know why object construction would get involved with autoviv | ||
timotimo | that's probably not even parse yet? | ||
16:22
Vlavv joined
|
|||
xfix | moritz, because this is not how fail2ban works. | 16:22 | |
TimToady | well, in the case of %h<a>[0] you can know at compile time that you have to autoviv .<a>, so you don't really need the WHENCE for that | ||
xfix | Rather, fail2ban checks SSH server logs, and bans IP that try to access too much. | ||
TimToady | WHENCE is more like for passing not-yet-existing entries to an rw parameter that might assign to it | 16:23 | |
when you can't know statically that it will happen | |||
masak | hm. if BEGIN blocks don't fire in quasis, then probably macros shouldn't either... | 16:24 | |
I really need to read those anaphoric things vendethiel++ sent me. | |||
xfix | moritz, how it IP bans, you should ask. Well, it uses iptables. Is iptables enabled? | ||
TimToady | lazy macros, who'd've thunk | ||
moritz | xfix: it is, and I'm pretty sure it used to work | 16:25 | |
xfix: and a tail -f /var/log/fail2ban.log showd the banning and unbannings | |||
xfix: and now that log file doesn't show anything anymore | |||
xfix | Hm, odd. | ||
16:26
raiph joined
|
|||
xfix | (I've to admit I've never installed fail2ban) | 16:26 | |
masak | well, we need some consistent rule for figuring out what fires at parse time inside of a quasi and what doesn't. | ||
it's increasingly clear to me that quasis are "detached" in some sense, and that I/we have disregarded that up until now. | |||
though D4 is quite a bit about that. | |||
TimToady | in my mind it falls under "accidental genericity" that needs to become intentional | 16:27 | |
masak | *nod* | ||
xfix | moritz, what does iptables -L list? | 16:28 | |
Oh, right, there is no iptables. | |||
masak | another insight while tinkering with stuff here in the background: we need to enable/push/cherish both ways to generate code-as-objects: the synthetic way using constructors, and quasis. | ||
xfix | (oh wait... I forgot it's Debian with /sbin) | ||
16:28
vendethiel left
|
|||
moritz | xfix: gist.github.com/moritz/4af1c8b05296e9ed44d3 | 16:29 | |
xfix | Yeah, it bans. | ||
moritz | xfix: I've banned three IPs manually from the INPUT chain | ||
xfix | Oh. | ||
moritz | and fail2ban would put them in fail2ban-ssh chain | ||
TimToady is inclined to think that most people will expect BEGIN and macros to retain ASAP semantics by default, and maybe delayed evaluation should be explicit | |||
unless we outlaw ASAP entirely | 16:30 | ||
(in macros) | |||
timotimo | damn, generating a method's body with QAST is kind of hard if you don't have access to a $*W to .attach_signature, .finish_code_object and also reference_to_code_object with ... | ||
xfix | By the way, reminds me of one thing. | ||
Yeah. | |||
Figured out the issue. | |||
moritz is inclined to agree TimToady++, and masak++ might be a bit biased due to having the implement that stuff | |||
masak | well, I'm not *sure* either way yet. | 16:31 | |
xfix | moritz, open /etc/ssh/sshd_config, change log level to VERBOSE, and restart SSHD. | ||
TimToady | moritz: which falls under a different principle :) | ||
masak | I do want some kind of consistency. but it's not clear to me yet what that should be. | ||
TimToady | just sayin' what a user probably expects, which is not necessarily what makes sense | ||
moritz | xfix: but auth.log already shows the failed login attempts | ||
masak | *nod* | ||
xfix | moritz, does it show IPs? | ||
masak | I can see the case for having BEGIN blocks fire ASAP. | 16:32 | |
TimToady | masak: consistency tends to work against TMTOWTDI though :) | ||
moritz | xfix: yes | ||
xfix: that's where I got the IPs from that I banned :-) | |||
skids | .oO(ouch failtoban edits rules? should really use an ipset instead.) |
||
moritz | Dec 26 17:21:41 hack sshd[15178]: Failed password for root from 122.225.109.208 port 53126 ssh2 | ||
masak | TimToady: if I synthesize a BEGIN block, should it fire at macro expansion time? | ||
TimToady | maybe we need macro phasers | ||
since macros have phases | |||
masak | no, I really don't think we need macro phasers. | 16:33 | |
but I can see how people might think we do :) | |||
moritz | raydiak++ # using IPv6 | ||
masak: doesn't the macro body already run at macro expansion time? | |||
16:33
vendethiel joined
|
|||
masak | what I would like, however, is to our extant phasers to make sense with and be maximally useful with macros. | 16:33 | |
xfix | Oh, right, this is Debian. | ||
moritz | that kinda makes BEGIN blocks in the generated code a bit superfluous | ||
masak | moritz: they do. it depends. | 16:34 | |
xfix | With lots of different patches, like putting failed authorizations in SSHD. | ||
masak | moritz: think about an unhygienic variable, which you want to debug-print during BEGIN time. | ||
moritz: the only way to do that would be to put the BEGIN in the quasi, and then have it fire at expansion. | |||
moritz | masak: or you could just print $COMPILING::<$varname> in the macro body, no? | 16:35 | |
TimToady | it seems to me that you really want a phaser for the time you're instantiating the tree | ||
xfix | Hm... | ||
^%(__prefix_line)sFailed \S+ for .*? from <HOST>(?: port \d*)?(?: ssh\d*)?(: (ruser .*|(\S+ ID \S+ \(serial \d+\) CA )?\S+ %(__md5hex)s(, client user ".*", client host ".*")?))?\s*$ | |||
This is a regex that fail2ban uses in order to determine host. | |||
masak | TimToady: that sounds too specific to me. | 16:36 | |
raydiak | moritz: wait, I am? :) | ||
TimToady | or the tree-walker that you have to have anyway can see a BEGIN, and instantiate it, since a normal quasi BEGIN would already have disappeared itself from the tree | ||
masak | the case for other phasers inside quasis is much easier to make out. | ||
xfix | Hm, should match... | ||
masak | like CHECK and END. | ||
moritz | raydiak: auth.log says so | ||
masak | the problem with BEGIN is that we now have two likely candidates for when it should fire: ASAP at parse-time, and at splice time. | 16:37 | |
raydiak | who --ips shows ipv4 addresses for both home and my vps | ||
TimToady | masak: ^^^ what I was talking about above | 16:38 | |
masak | with synthetic Qtrees, there may not even be a parse-time. | ||
TimToady: yes, I'm thinking about tree-walkers too. | |||
TimToady | a constructed BEGIN won't be visible to the parser, and a parsed BEGIN won't be visible to the tree | ||
so I don't think there's really a problem here | 16:39 | ||
masak | I definitely think Qtrees still have BEGINs in them. | ||
they are parts of the program structure that you might want to analyze and reason about. | |||
TimToady | as long as the tree walker processes any BEGINS it sees, it won't see any that happened in the parser | ||
masak | saying that BEGINs melt away is a bit like saying class declarations melt away. they don't. | ||
TimToady | because the parser just inserts the *results* of the BEGIN into the tree | ||
well, even if there is residue, it can be marked as evaluated | 16:40 | ||
masak | hm. | ||
yes, maybe something like that is necessary. | |||
masak .oO( exhausted BEGIN ) | |||
moritz | let's rename it EXHAUST :-) | 16:42 | |
TimToady | .oO(Render unto Parser the things that are Parser's, and unto AST the things that are AST's...) |
||
TimToady is not sure whether he needs more coffee or not... | 16:44 | ||
xfix | moritz, www.fail2ban.org/wiki/index.php/FAQ...bruteforce | 16:45 | |
Perhaps this is what is happening. | |||
moritz | xfix: oh, I changed the timezone from GMT+1 to UTC | 16:47 | |
xfix | Restart syslogd. | 16:48 | |
So it will see timezone change. | |||
moritz | xfix++ | 16:49 | |
TimToady | masak: here's another thing, an infix macro has to be able to handle a QAST argument for the left side, even if the right argument can be told to parse to a Qtree | 16:52 | |
xfix | (that's probably why it took me a while to figure it out... my server is Fedora server with systemd, and here timezone can be simply switched with timedatectl, so I never had such issues) | ||
TimToady | so either the left arg is opaque, or you need some way to make it look isomorphic to a Qtree | 16:53 | |
xfix | (I actually wonder when Debian will have systemd) | ||
masak | yes, there needs to be fast lanes built between a "parse view" and a "Qtree view" of things. | ||
moritz | xfix: debian jessie has systemd | ||
xfix: ... which is what hack.p6c.org uses :-) | |||
TimToady | masak: but can they be sufficiently isomorphic? | ||
moritz | xfix++ | ||
masak | TimToady: not sure. not completely, no. | 16:54 | |
TimToady: synthetic Qtrees have no parse view. | |||
there's also a "value view", the result of evaluating either a piece of program text or a Qtree. | |||
TimToady | well, that's what a BEGIN does, basically | 16:55 | |
masak | sort of, yes. | ||
at least from the point of view of the runtime. | |||
TimToady | your other ploy is to rewrite the P6 parser to all use Qtrees, then we translate that lower-level stuff as necessary :) | 16:56 | |
maybe that's something to think about when we get a complete bootstrap | 16:57 | ||
of course, arguably most of the infelicities we have in QAST are necessary due to circularity sawing | |||
masak | last time I mentioned that as a (frightening) maybe-necessity, I was met by surprisingly favorable reactions by you and moritz :) | 16:58 | |
s/by/with/ | |||
TimToady | well, it's a long-term goal to replace Grammar.nqp with STD.pm6 or so | ||
masak | I think Qtree should remain experimental for a while yet, but as it starts to prove itself, we should also consider the bootstrapping angle. | ||
TimToady | but for now, portability is an important consideration | ||
masak | a Perl 6 resting on Qtree would be awesome indeed. | 16:59 | |
TimToady | enough so that I'm willing to delay the full bootstrap | ||
masak | *nod* | ||
TimToady | it's not necessary for 6.0.0 | ||
so maybe we punt on infix macros before full bootstrap as well | |||
17:01
raiph left
|
|||
masak | I may regret I said this, but I don't see infix macros as being particularly hard, once we have technology like the 'is parsed' of strangelyconsistent.org/blog/macros...s-in-a-row 's "Implementation" section. | 17:01 | |
TimToady is trying to kill "is parsed" though | |||
masak | allowing 'is parsed' macros to remain AST-y and participate in Perl 6 grammar parsing is important, I think. | 17:02 | |
I don't care much about textual 'is parsed'. | |||
(mostly because I don't see it as very well-defined, but more like a wish fulfillment kitchen sink) | |||
17:03
araujo left
|
|||
TimToady | "is parsed" is only tenuously associated with the current language, is the big problem, and not just in terms of the current cursor, but also in terms of "syntactic category theory" | 17:04 | |
masak | right. if there are rules about how that happens, they are unstated as far as I know. | ||
TimToady | that's why I'm mostly thinking of macros as "slang regex { <stuff> { make quasi {...} } }" these days | 17:05 | |
or something like that | |||
17:05
araujo joined
|
|||
TimToady | the categories fall out of how you name the regex | 17:05 | |
and the grammar derivation is implied by the 'slang' | 17:06 | ||
'is parsed' says nothing about deriving a new grammar, which is another problem | |||
well, it could be force, but it would rather...forced... | 17:07 | ||
*forced | |||
FROGGS_ | what if you want to change the 'stopper', how do I say that I want to mess with the stopper from QRegex and not from MAIN? | ||
17:07
virtualsue left,
mr-foobar joined
|
|||
TimToady | FROGGS_: good question | 17:08 | |
MAIN makes sense as the default, but it can merely be the degenerate case | |||
FROGGS_ | and when I think about the v5 slang... what if I want to mess with tokens/actions of the v5 slang from the outside... (before I switch to it (again)) | ||
TimToady | I'd guess that whatever mechanism underlies 'slang' poking MAIN, needs to be made visible as a meta-grammar-poke-this-in-there thingie | 17:10 | |
FROGGS_ | feels more like: augment $~Perl5 { token .... }; augment $~Perl5-actions { method .... } | ||
yeah | |||
TimToady | yes, that's more like the original slang proposal | ||
FROGGS_ | m: say $~MAIN | 17:11 | |
+camelia | rakudo-moar 8e5c5e: OUTPUT«Slang.new(:grammar(Perl6::Grammar), :actions(Perl6::Actions))» | ||
TimToady | but maybe not so fancy as all that | ||
FROGGS_ | we've got that at least nowadays | ||
TimToady | once you can name other braids, you can just poke 'em with a function somehow | ||
at BEGIN time | |||
so maybe slang poking is just a macro | 17:12 | ||
('just', he sez...) | |||
or just stick with BEGIN $~QRegex = Slang.mixin: role MyStopper { regex stopper {...} } | 17:15 | ||
BEGIN $~QRegex does ... | |||
FROGGS_ | true, the currently working mixin approach is kinda neat, I mean, it works and all :o) | 17:16 | |
17:16
vendethiel left
|
|||
TimToady | or BEGIN $~QRegex but= ... if you want to make sure it's not in place | 17:16 | |
FROGGS_ | we shall sugar coat that at some point | ||
TimToady | well, but handling the delegation to the grammar somehow | ||
TimToady wonders if a Slang object is the right way to associate a grammar with its actions, or whether the actions should just be poked into the invariant part of the cursor | 17:18 | ||
17:19
vendethiel joined
|
|||
TimToady | in fact, we should eventually look into a way to avoid the double dispatch to the rule and then to the actions | 17:19 | |
FROGGS_ | well, actions are kind of pluggable... so there can be use cases for 1:n relationships during a programs lifetime | ||
TimToady | that's why I said poke it into the cursor, not into the grammar | ||
FROGGS_ | or perhaps, one could even want to parse once, and act twice or more | 17:20 | |
17:20
aghbas joined,
aghbas left
|
|||
moritz | FROGGS_: that way lies madness | 17:20 | |
masak | here's another very recent AST format to learn from: engineering.shapesecurity.com/2014/...t-ast.html (hat tip to raiph++) | ||
TimToady | but efficiency wants the actions to act as wrappers for the rules, eventually, with appropriate inlining | ||
FROGGS_ | moritz: I am not thinking about programming languages here, more about json or similar | ||
TimToady | most parsing systems seem to want to get away from the match tree as quickly as possible | 17:22 | |
and AST have their own tree-walking after that | |||
*s | |||
moritz | yes, parse trees are rather specific, and when you're too far away, you don't know how to interpret stuff anymore | ||
masak | I do wish that the greatest discussions we have on macros here wouldn't also be very scary | 17:23 | |
:P | |||
xfix | (I don't really understand the discussion... but I guess it's because macros are complex) | 17:24 | |
TimToady | .oO(how's that synthetic Qtree gonna avoid LTA errors, eh?) |
||
xfix: Do you see yon Celestial City? No? Well, then, do you see yon Wicket Gate? | 17:25 | ||
sorry, Pilgrim's Progress allusion there... | |||
our poor pilgrim masak++ is trying to get to the wicket gate, and I keep hyping the celestial city :) | 17:27 | ||
17:32
rurban left
|
|||
masak | that's about the size of it | 17:35 | |
on the face of it, Qtree splicing is a much less constrained action than writing a corresponding program fragment in text. | 17:36 | ||
I'm pretty sure splicing will need a "consistency check" of sorts. basically a "docking operation" between things inside the Qtree and its new-found context. | 17:37 | ||
"you can't declare that -- already declared in this context". would be awesome enough. | |||
of course, I'd expect a good error report to contain line-and-file for *both* the point in the quasi (if any) and the macro expansion site. | 17:38 | ||
17:45
sirdancealot joined
|
|||
masak | moritz: it's not necessarily easier to defer BEGIN blocks running ASAP. they already run ASAP, even in quasis, and that's the implementation that requires zero amount of code. | 17:46 | |
moritz | masak: then sorry my wrong assessment | 17:47 | |
masak | moritz: I'm exploring the alternative approach to see if it scores higher on usefulness and consistency. my goal isn't to avoid work as an implementor -- but I do hope we can avoid spec'ing extra things that make Perl 6 look as if it were designed by committee. | ||
"maybe we need more phasers" smells highly of committee to me. | |||
at least to a first approximation. | 17:48 | ||
xfix | moritz, I cannot modify infrastructure-doc. | 17:52 | |
+dalek | p: 5c9ffcf | TimToady++ | src/ (2 files): add a note function, use it some |
||
vendethiel | masak: have you started reading the book :)? | 17:53 | |
xfix | - nqp::printfh(nqp::getstderr(),"$indent mergesubrule $name start $start to $to fate $fate\n") if $nfadeb; | ||
+ nqp::printfh($err,"$indent mergesubrule $name start $start to $to fate $fate\n") if $nfadeb; | |||
Why note function is not used here? | 17:54 | ||
moritz | xfix: try again pelease | ||
xfix | works | ||
+dalek | frastructure-doc: 3ef0b6d | (Konrad Borowski)++ | hosts/host08.perl6.com (2 files): Make host08.perl6.com render as a POD. |
||
moritz | xfix: probably because note() doesn't cache stderr | 17:55 | |
masak | vendethiel: not yet. I'm still on Lisp In Small Pieces, which arrived first. | 17:57 | |
17:58
skids left
|
|||
TimToady | my assumption is that nqp::getstderr() is slower than a variable access, but I could be wrong about that | 17:58 | |
getstderr just pulls it straight out of the thread context | 17:59 | ||
timotimo | TimToady: i could put a tiny thing into spesh to turn getstderr into a direct constant pointer copy or something :) | ||
18:00
virtualsue joined
|
|||
TimToady | well, arguably it should really depend on $*ERR rather than merely being thread local, but it's not really a constant | 18:00 | |
timotimo | are we interested in that in nqp? | 18:01 | |
18:01
skids joined
|
|||
TimToady | well, when p6 is relying on nqp semantics, and nqp semantics are wrong-ish, then we've got a distortion in the semantic model | 18:03 | |
not saying p6 is doing that in this case | |||
timotimo | oh, you mean something in nqp that uses note() should honor $*ERR if it was called from perl6 | ||
that's totally reasonable | |||
TimToady | the debugging obviously belongs to nqp here | ||
if p6 used nqp's not to implement its own note, it would be wrong, is what I'm sayin' | 18:04 | ||
*note | |||
xfix | It's clearly a debugging feature (because clearly, printf is best debugger... there is a reason why Ruby has `p` function) | ||
TimToady | certainly we're still getting semantic distortions of that nature because we're relying on nqp's regex/grammar implementation for most of p6's | 18:06 | |
which is why we would like to get to full bootstrap someday, eventually | 18:07 | ||
timotimo | if rakudo gets fast enough that a rakudo written in pure perl6 is feasible, i'll be a happy camper | 18:08 | |
TimToady | but our optimization of p6 code needs to approach the efficacy of nqp code | ||
well, obviously you'll always need circularity saws somewhere | 18:09 | ||
but yeah | |||
timotimo wanted to get started - at least a tiny bit - on creating a method from a BUILDALLPLAN/BUILDPLAN rather than using the array for it ... didn't get far :( | |||
18:10
Mso150 joined
|
|||
masak | another unresolved tension I need to think about: Qtrees resolve to model the program text as it is at author time. (this was my argument earlier for BEGIN blocks still being represented) | 18:17 | |
and yet, macros expand macro calls at the Qtree level, producing something new that wasn't there in the text. | 18:18 | ||
can't have it both ways. | |||
TimToady | not without a discriminant of some sort, nope | 18:19 | |
skids | r: class F { multi method p ($self where {True}: $foo) { } } # used to work. | 18:35 | |
+camelia | rakudo-{parrot,moar} 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileInvocant colon not allowed hereat /tmp/tmpfile:1------> F { multi method p ($self where {True}:⏏ $foo) { } } # used to work.» | ||
18:38
vendethiel left
|
|||
TimToady | that's funny, should be limiting that expression to tighter than comma | 18:43 | |
I guess it's failing too early | 18:44 | ||
18:45
mvuets joined
18:47
flussence left
18:48
vendethiel joined
18:51
BenGoldberg joined
18:55
BenGoldberg left
18:58
Mso150 left
18:59
Mso150 joined
19:02
rindolf left
|
|||
+dalek | kudo/nom: 32c6e44 | TimToady++ | src/Perl6/Grammar.nqp: signatures are also allowed to have invocants :) |
19:03 | |
TimToady | skids++ | ||
skids | r: class F { multi method p ($self where {True} is ro: $foo) { } } # would be a workaround, but does not work in star12 preview | 19:07 | |
+camelia | rakudo-{parrot,moar} 8e5c5e: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileMissing blockat /tmp/tmpfile:1------> F { multi method p ($self where {True} ⏏is ro: $foo) { } } # would be a workarou» | ||
skids | oh, huh. | ||
nevermind. | |||
19:08
FROGGS_ left
|
|||
moritz | rakudo.org/2014/12/26/announce-raku...e-2014-12/ | 19:08 | |
IWBN if somebody else could send the announcement mail; my primary email account (which is subscribed to these lists) is currently unavailable :( | |||
19:09
vendethiel left
19:10
khisanth_ is now known as Khisanth
19:13
FROGGS joined
19:14
guru left
|
|||
raydiak | hm trying to clone a git repo on hack is coming in at like < 100 KiB/s? | 19:15 | |
moritz | raydiak: from github? | 19:17 | |
raydiak | moritz: yeah whatever comes in from rakudobrew build moar | 19:18 | |
swung up eventually, averaging around 150 or 200 now | |||
moritz | raydiak: I'm cloning perl6/mu now, at 3 MiB/s | 19:19 | |
raydiak | oh, maybe that's why :) | ||
moritz | raydiak: no, I started after you, just to check if I can reproduce :-) | ||
raydiak | no idea, but everything it's cloning is crawling | ||
I haven't done anything abnormal to my account yet even! | 19:20 | ||
xfix | Only one person uses the internet. | ||
And it's used by 'git'... hm... | |||
(well, and another for irssi, but that shouldn't have used too much bandwidth) | |||
raydiak | heh it's still trying to get through the 2nd clone in the process | 19:21 | |
FROGGS | jnthn: halp | 19:22 | |
jnthn: I am going nuts (I'm hacking the codegen for while/until loops) | |||
moritz sends FROGGS++ a nutcracker | 19:23 | ||
xfix | Hm, git is running 13 minutes now. | ||
raydiak | afk, back in a few | 19:28 | |
FROGGS | jnthn: it is this and I don't get the error message: gist.github.com/FROGGS/98e1a97434c3753dc081 | ||
19:29
vendethiel joined
|
|||
FROGGS | jnthn: line 28 in the gist triggers it btw | 19:29 | |
TimToady | .oO(I thought moritz had already proven he can reproduce...) |
||
moritz | :-) | 19:30 | |
19:30
temp-name joined
19:31
flussence joined
|
|||
temp-name | Just grabbed the R* 2014-12 tar.gz. The readme still says "2014.09" at the top. | 19:31 | |
moritz | :( | ||
temp-name: thanks for telling | |||
temp-name | y/w! | ||
moritz | does that warrant a point release? | 19:32 | |
FROGGS | why do we hesitate to just replace that tarball? | ||
moritz | FROGGS: cause it's not the version I tagged | ||
FROGGS | ahh, okay | 19:33 | |
moritz | FROGGS: though I guess that shouldn't stop me | ||
+dalek | ar: 700fde6 | moritz++ | README: fix version, temp-name++ |
||
moritz | oh what the hell | ||
FROGGS | you can even move the tag, because I bet not more than three peeps pull that repo regularly | 19:34 | |
moritz | FROGGS: I've done that once, and have reason to never do it again :( | ||
tarball updated | |||
FROGGS | okay :o) | 19:35 | |
moritz++ | |||
moritz | I once accidentally switched year and month of a release tag | ||
2011.10 instead of 2010.11, or something like that | |||
FROGGS | ahh, I remember | 19:36 | |
raydiak | back | ||
moritz | and a year later, it made us trouble because some folks had the old tag, and 'git describe' produced inconsistent numbers | ||
FROGGS | yes, I think I made the release that year after | ||
at least I remember having trouble with a release tag like that | 19:37 | ||
mathw | hello! | ||
FROGGS | hi mathw | ||
moritz | \o mathw, raydiak | ||
19:38
sirdancealot left
|
|||
mathw is confused | 19:38 | ||
FROGGS | sure, why not :o) | 19:39 | |
mathw | if I call ncurses' getch() function from Perl 6 via NativeCall, it returns immediately | 19:40 | |
the value it returns is 4294967295 | |||
FROGGS .oO( I'm puzzled and LEGO'd ) | |||
mathw | this is very suspicious | 19:41 | |
FROGGS | mathw: how does your getch sub look like? | ||
moritz | m: say 4294967295.base(16) | ||
+camelia | rakudo-moar 32c6e4: OUTPUT«FFFFFFFF» | ||
moritz | -1? | ||
mathw | yeah | ||
it's an error code I just wish I knew why it's an error :( | |||
geekosaur | at a guess, the fd is set nonblocking | ||
and the error is EAGAIN | |||
19:42
temp-name left
|
|||
FROGGS | "The getch, wgetch, mvgetch and mvwgetch, routines read a character from the window. In no-delay mode, if no input is waiting, the value ERR is returned. In delay mode, [...]" | 19:42 | |
moritz | "not again" :-) | ||
mathw | :) | 19:43 | |
TimToady | m: class F { multi method p ($self where {True}: $foo) { } } | ||
+camelia | ( no output ) | ||
FROGGS | ossum | ||
skids | TinToady++ | 19:44 | |
oops. | |||
TimToady looks for his tin snips | |||
skids | Oh well TimToady++ doesn't need karma anyway :-) | ||
.oO(There are no ways to do it) |
19:45 | ||
moritz | hey, I never realized how composable that nick is. ZincToady and all that :-) | 19:46 | |
TimToady | not to mention TimFroggy | ||
FROGGS | :D | ||
+1 | |||
skids | .oO(Ambiguous dispatch -- there are too many ways to do it.) |
19:47 | |
FROGGS | mathw: btw, I'd let the getch reuturn an int32 fwiw | ||
return* | |||
mathw | hehe yes that comes out as -1 :) | 19:49 | |
19:49
FROGGS_ joined,
FROGGS[tab]_ joined
|
|||
mathw | right | 19:50 | |
yes it's definitely in non-blocking mode on the getch | |||
unfortunately the way I've found to tell it to be in blocking mode... doesn't work | |||
and I know, this is not the channel really to ask about ncurses, but I can't ask my parents because they'll look at me like I've gone made | |||
mad* | |||
19:50
vendethiel left
|
|||
TimToady | well, but you have | 19:51 | |
19:51
FROGGS[tab] left
|
|||
mathw | I suppse so. I *am* using ncurses after all | 19:52 | |
19:52
FROGGS left
|
|||
mathw | I'm open to alternatives... | 19:52 | |
TimToady | don't look at me for answers; I'm madder than you are | 19:53 | |
I use raw ANSI sequences | |||
mathw | That sounds... joyous | ||
FROGGS_ | aye, he's almost like Mad Eye :P | ||
19:53
vendethiel joined
|
|||
mathw | Besides, what I'm doing rather benefits from the demonstratedly working binding to an annoying native library | 19:54 | |
This is going to be for a talk | |||
...assuming I can make it work! | |||
FROGGS_ | mathw: I'd propose you just live with the fact that you get a -1 aka ERR when there is nothing to read, and go on in your event loop | ||
mathw | FROGGS_: unfortunately I really want a blocking read | 19:55 | |
FROGGS_ | ahh, hmmm | ||
:/ | |||
mathw | I could just spin around it. That's battery-efficient, right? :D | ||
xfix | And I use set_color. | 19:56 | |
set_color f54; echo lightred | 19:57 | ||
FROGGS_ | mathw: you could port POE or AnyEvent or whatever is popular from P5 :o) | ||
xfix | Until you realize that because of Rakudo quirks, it's completely pointless, as everything is copied thrice. | 19:58 | |
(I realized that after porting Sys::Mmap) | |||
raydiak | moritz: still no idea what is going on, but cloning from github is slow while cloning from my own server works fine (both over ssh) | 20:03 | |
mathw | What's the idiomatic way of doing custom constructors for objects - particularly ones with compulsory parameters | 20:05 | |
ah, found it | 20:09 | ||
raydiak | m: class Foo { has $.bar; submethod BUILD (:$.bar!) {}; }; Foo.new(:bar).say; Foo.new.say; | 20:11 | |
+camelia | rakudo-moar 32c6e4: OUTPUT«Cannot find method 'STORE' in submethod BUILD at /tmp/fHoOMhrq8j:1 in method BUILDALL at src/gen/m-CORE.setting:970 in method bless at src/gen/m-CORE.setting:952 in method new at src/gen/m-CORE.setting:941 in block <unit> at /tmp/fHoOMh…» | ||
raydiak | m: class Foo { has $.bar; submethod BUILD (:$!bar!) {}; }; Foo.new(:bar).say; Foo.new.say; | ||
+camelia | rakudo-moar 32c6e4: OUTPUT«Foo.new(bar => Bool::True)Required named parameter 'bar' not passed in submethod BUILD at /tmp/e3mfm4wS7x:1 in method BUILDALL at src/gen/m-CORE.setting:970 in method bless at src/gen/m-CORE.setting:952 in method new at src/gen/m-CORE.se…» | ||
_sri | why is there a web framework shipping with rakudo star? | 20:17 | |
TimToady | vendethiel: the problem with redefining -> as an infix is that . is the start of a postfix, not an infix | 20:18 | |
20:18
telex left
|
|||
TimToady | and the test for bogus -> is also a postfix | 20:18 | |
_sri | have we not learned anything from the CGI.pm mess? | 20:19 | |
20:20
telex joined
|
|||
TimToady | rakudo star is not core | 20:20 | |
it's more like a distro | |||
and distros can put whatever they like | |||
_sri | to anyone on the outside rakudo star *is* perl6 | 20:21 | |
TimToady | for now | ||
would someone *please* fork rakudo star? :) | |||
_sri | the fact that Bailador ships with rakudo star at least made me reconsider my plans for 2015 | ||
TimToady | maybe you should fork it then :) | ||
rakudo star is no more "offical" than, say, Ubuntu | 20:22 | ||
20:22
darutoko left
|
|||
TimToady | the kernel folks don't give much of a rip what distros ship | 20:22 | |
xfix | Well, only Rakudo Star is announced on Rakudo website. | ||
TimToady | for now | 20:23 | |
FROGGS_ | _sri: create another one, and we happily ship that too :o) | ||
_sri | yea, i just came here from the rakudo site | ||
FROGGS_: not getting into a fight, i'll wait and see how things go for Bailador first | |||
xfix | I personally consider Rakudo Star to be a snapshot of Rakudo with some useful modules. | ||
TimToady | it's like, all we have at the moment is slackware :) | ||
20:24
ab5tract joined
|
|||
_sri | if there's a blessed framework, it may as well get some time | 20:24 | |
TimToady | blessed by whom? | ||
xfix | Rakudo Star developers. | ||
TimToady | I ain't gonna bless any mere distro | ||
any more than Linus would bless a particular distro, other than by using it | 20:25 | ||
moritz consideres making a more opionated distro than star | 20:26 | ||
xfix | Well, it has to be noted that MoarVM Rakudo Perl is Perl 6, even if there are other Perl 6 implementations. | ||
(because what else... niecza wasn't updated for a long time) | 20:27 | ||
TimToady | some implementations are more equal than others | ||
_sri is very confused now as to which perl6 is the production ready one | 20:28 | ||
xfix | Rakudo. | ||
_sri | (or supposed to be soonish) | 20:29 | |
TimToady | the one that passes the spec tests without fudging :) | ||
xfix | As for Star or no star, it doesn't matter (Rakudo Star is just Rakudo with a few builtin modules). | ||
TimToady, then none. | |||
TimToady imagines Rakudo Bang, Rakudo Dollar, Rakudo Sharp... | 20:30 | ||
xfix | Rakudo Version Manager... | ||
TimToady | and everyone wants the Rakudo Colon distribution | 20:31 | |
lunch & | |||
xfix | Rakudo Colon - everything is a colon. | ||
my :variable := 42: | |||
20:32
ab5tract left
20:38
Vlavv left
|
|||
moritz | FROGGS_: will you build an .msi for star 2014.12? | 20:40 | |
FROGGS_ | I can do that, aye | 20:42 | |
moritz | nine: I have trouble logging in to your box | 20:43 | |
nine: ssh niner.name simply hangs | |||
nine: seems the domain has an AAA record, but it's not reachable via v6 | 20:44 | ||
*AAAA | |||
traceroute6 goes up to hos-tr2.ex3k5.rz10.hetzner.de | 20:47 | ||
skids | .oO(A=ipv4 AA=drinking AAA=driving AAAA=ipv6) |
20:48 | |
TimToady | shouldn't they have skipped to ipv7 then? | ||
FROGGS_ | >.< | 20:50 | |
I bet the PHP folks consider ipv6 a mistake too | |||
20:52
Vlavv joined
|
|||
TimToady | the PHP folks are projecting | 20:53 | |
moritz | IPHPv6 :-) | ||
IPv6 traffic from and to hack.p6c.org is not getting accounted, btw :-) | |||
skids | No dis meant to IPv6. At least these days, now that all the holes are finally being patched. | 20:54 | |
TimToady | let's leave HP out of it | ||
unless that's short for "Hole Patch" | 20:56 | ||
moritz | "Half Patched" | 20:57 | |
TimToady | of course, I live in a country that still pretty much in complete denial about IPv6 | ||
moritz | too many v4 addresses available | 20:58 | |
it's that simple :-) | 20:59 | ||
TimToady | it's about as easy to get a v6 address here as it is to get a v4 address in China | ||
skids | Well, the network equipment is finally catching up on the LAN side so I'd expect some more uptake now that us network guys can keep IPv6 address spoofing from hapenning on enterpise campus LANs. | 21:00 | |
But yeah, they didn't make it easy enough to get blocks. They should have had some blocks that you automatically own with ownership of a given IPv4 range. | 21:01 | ||
flussence | 6to4 kinda already does that... | ||
skids | Not in an especially publicly routable manner. | ||
flussence | yeah, it doesn't work very well, if at all... | 21:02 | |
21:02
xfix left
|
|||
moritz | well, my LIR handed my a /56 net when asked for public address :-) | 21:02 | |
I guess that should cover my needs in the near to medium future :-) | 21:03 | ||
flussence | (I must get around to automating my IPv6 setup some day - right now it involves manually poking at telnet debug things on my DSL router each time it disconnects...) | 21:04 | |
21:04
mickcy_ca joined
|
|||
moritz | flussence: maybe there's a firmware update that makes that superfluous? | 21:05 | |
skids | We ended up with a /44 for a medium sized university, for comparison. | ||
Not that I've had ANY time to deploy it. | |||
flussence | moritz: I wish... I had to use a patched firmware from some shady-looking third-party website just to get telnet access to it :( | 21:06 | |
I've got an older one with openwrt installed, but it lacks ADSL2+ apparently so it's stuck at 8Mbps... | 21:07 | ||
21:11
Mso150_m joined
21:12
cxreg2 is now known as cxreg
21:13
Mso150 left
|
|||
mickcy_ca | Hello again ... reading deeper into the P6 object model and running into bless again ... In P5 I am not sure what this really does, and in P6 same issue. Would anyone be able to elucidate this form me? | 21:13 | |
timotimo | bless is less weird in perl6 compared to perl5 | 21:14 | |
mickcy_ca | That is comforting. | ||
moritz | mickcy_ca: in Perl 6, .bless does two things | 21:15 | |
timotimo | bless creates the object storage and then calls the BUILDALLPLAN that was calculated for the class and all its superclasses; you give named parameters to bless and they are used to fill in the attributes as well as passed to all the BUILD submethods you've written or inherited | ||
moritz | mickcy_ca: 1) create a new object with self.CREATE | ||
timotimo | i hope that's correct and helpful | ||
moritz | mickcy_ca: 2) it starts the attribute initilization | ||
mickcy_ca: doc.perl6.org/language/objects#Obje...nstruction has the user-facing details | 21:17 | ||
mickcy_ca: also perlgeek.de/blog-en/perl-6/object-c...ation.html | |||
mickcy_ca | moritz: Thanks, you are a wonderful resource. | 21:18 | |
moritz | mickcy_ca: you're welcome | ||
timotimo | i used to be quite confused by BUILD and new, but nowadays i grok it quite well | ||
mickcy_ca | timotimo: I strongly in the confused boat ... but happily building a new one. | 21:19 | |
21:20
vendethiel left
21:21
vendethiel joined
21:23
sirdancealot joined
21:26
zakharyas joined
|
|||
mickcy_ca | Another question pops up ... is use SomeLibrary; lexical or global to all subsequent code? | 21:29 | |
timotimo | lexical | ||
mickcy_ca | Nice clean answer. | ||
timotimo | perl6 is a big fan of lexical stuff | ||
m: { use Test; } say GLOBAL::.keys | |||
+camelia | rakudo-moar 32c6e4: OUTPUT«===SORRY!=== Error while compiling /tmp/dn85vxdpJ0Two terms in a rowat /tmp/dn85vxdpJ0:1------> { use Test; } ⏏say GLOBAL::.keys expecting any of: infix stopper infix or meta-infix…» | ||
timotimo | m: { use Test; }; say GLOBAL::.keys | 21:30 | |
+camelia | rakudo-moar 32c6e4: OUTPUT«Test» | ||
timotimo | ^- however, you can find the module again in the GLOBAL:: pseudopackage | ||
moritz | m: { use Test; plan 1; ok 42 } | ||
+camelia | rakudo-moar 32c6e4: OUTPUT«1..1ok 1 - » | ||
moritz | m: { use Test; plan 1; }; ok 42 | ||
+camelia | rakudo-moar 32c6e4: OUTPUT«===SORRY!=== Error while compiling /tmp/qUTx_EUDOXUndeclared routine: ok used at line 1. Did you mean 'on'?» | ||
moritz | star-m: say 'updated?' | 21:31 | |
+camelia | star-m 2014.12: OUTPUT«updated?» | ||
moritz | star-j: say 'fast enough?' | 21:32 | |
+camelia | star-j 2014.12: OUTPUT«Error occurred during initialization of VMCould not reserve enough space for object heapError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.» | ||
moritz | wrong question asked :-) | ||
star-p: say 'Murcia existe' | 21:33 | ||
+camelia | star-p 2014.12: OUTPUT«Murcia existe» | ||
21:37
kaare_ left,
Akagi201_ left
|
|||
mickcy_ca | So the docs say rolling own .new is poor practice ... and I seem to understand that sumbethod BUILD can provide all the gooy sugary things that are needed to initialize a class ... Correct? | 21:37 | |
21:38
Akagi201 joined
|
|||
geekosaur | right. more or less, the default new walks back to the base class and then calls BUILD working forward to ensure that the new object is created properly; you do your setup in BUILD and can assume that all superclasses have already been BUILD-ed and are ready to go | 21:39 | |
moritz | mickcy_ca: yes, sounds about right | 21:40 | |
masak | I don't consider rolling your own .new as being poor practice. doing it when it's not necessary would be poor practice. | 21:43 | |
mickcy_ca | That is fair. | ||
masak | `BUILD` is for initializing the object. `new` is for providing an API for creating a new object. | ||
moritz | let's rephrase | ||
masak | but even `new` is just a convention. you can have a dozen constructors if you want, and you don't have to call them `new`. | ||
FROGGS_ | moritz: have you checked panda in the 2014.12 star? | ||
`panda --installed list` fails here because of uri | 21:44 | ||
masak | the trick is to keep to the conventions that do you good. :) | ||
timotimo | "well thought out practices" | ||
moritz | if you want your class to be easily subclassable, it might be good idea to keep the standard API of .new with named args | ||
right, what masak++ said | |||
FROGGS_: which backend? | 21:45 | ||
FROGGS_ | moar (on windows) | ||
moritz | FROGGS_: eeks | ||
FROGGS_ | not tested linux (yet) | ||
moritz | FROGGS_: I just tried panda on the 2014.12 compiler release, and it worked fine | ||
FROGGS_ | hmmm | ||
21:46
denis_boyun joined
|
|||
moritz | FROGGS_: just did a panda-m install Clifford successfully | 21:47 | |
but yes, panda-m --installed list also fails here | |||
No such method 'chars' for invocant of type 'Any' in method dispatch:<hyper> at /home/camelia/rakudo-star-2014.12/install/languages/perl6/runtime/CORE.setting.moarvm:1352 in sub listprojects at /home/camelia/rakudo-star-2014.12/install/languages/perl6/lib/Panda/App.pm:53 | |||
FROGGS_ | yeah... | 21:48 | |
because of this: Panda::Project.new(name => "", version => Any, dependencies => Array.new(Any), metainfo => ("repo-type" => "git", "source-url" => "git://github.com/colomon/uri").hash, bu | |||
ild-output => Any, build-passed => Any, test-output => Any, test-passed => Any) | |||
21:48
denis_boyun left
|
|||
FROGGS_ | I dunno where that comes from | 21:49 | |
21:49
sirdancealot left
|
|||
FROGGS_ | hmmm, maybe the reference uri points to an old commit? | 21:50 | |
referenced* | |||
21:50
Mso150_m left
|
|||
FROGGS_ | ohh yes :o( | 21:50 | |
uri needs to be bumped | |||
moritz | but I did the git submodule foreach pull origin master, or whatever the magic invocation is | 21:51 | |
FROGGS_ | and it should point to github.com/perl6-community-modules/uri.git | ||
moritz | oh, wrong URI? | ||
FROGGS_ | yeah | ||
21:51
Mso150_m joined
|
|||
FROGGS_ | the colomon/uri is not listed in the ecosystem anymore, that's the problem | 21:52 | |
which wants to be handled in panda too, because and older panda installation should still work when the ecosystem list changes over time | 21:53 | ||
colomon | oh, yeah | ||
it's git://github.com/perl6-community-modules/uri.git now | |||
+dalek | ar: 4c46497 | moritz++ | .gitmodules: use new URI for URI |
21:54 | |
FROGGS_ | ohh, the problem is not with panda but with how we generate panda's state in star | ||
spider-mario | the values of $*DISTRO and $*KERNEL on my machine seem slightly strange to me | ||
paste.awesom.eu/GfPw | |||
(rakudo 2014.12) | 21:56 | ||
moritz | FROGGS_: moritz.faui2k3.org/tmp/rakudo-star-...2.1.tar.gz another attempt | 21:59 | |
masak | 'night, #perl6 | 22:05 | |
FROGGS_ | gnight masak | 22:06 | |
moritz | FROGGS_: with 2014.12.1, panda --installed list works | 22:07 | |
timotimo | nice catch, froggs | ||
moritz guesses he should have been more patient with feedback before doing the release | 22:09 | ||
FROGGS_ | well, I just test that because there was/is an RT ticket about these stuff on windows | 22:12 | |
yay, it works! | 22:14 | ||
I'll also call the msi 2014.12.1 | |||
though, I only built a moar version yet | |||
need to do parrot too | |||
moritz | FROGGS_++ | 22:15 | |
tag pushed | |||
22:15
mickcy_ca left
|
|||
moritz | tarball uploaded. | 22:15 | |
22:16
araujo left
|
|||
moritz | FROGGS_: once you're done with the .msis, can you please announce them on rakudo.org, and mention the point release too? | 22:16 | |
22:16
mephinet left
|
|||
FROGGS_ | will do that | 22:17 | |
vendethiel | TimToady: ah, alright | 22:18 | |
22:20
mephinet joined,
jack_rabbit joined
22:22
araujo joined,
spider-mario left
22:24
araujo left
22:25
araujo joined
22:26
spider-mario joined
22:37
zakharyas left
22:45
Alula left,
Alula joined
|
|||
spider-mario | rakudo on parrot is using almost 2GB of RAM to compile Pod/To/HTML.pm | 22:54 | |
and it’s still not done after 1300 seconds of CPU time | 22:55 | ||
what’s going on? | |||
japhb waves tiredly | 22:58 | ||
How goes it in #perl6 land? | |||
23:00
kjs_ joined
|
|||
vendethiel | m: my \f = { $_ * 3}; say f(5); | 23:06 | |
+camelia | rakudo-moar 32c6e4: OUTPUT«===SORRY!=== Error while compiling /tmp/NjsDnsCLghVariable '&f' is not declaredat /tmp/NjsDnsCLgh:1------> my \f = { $_ * 3}; say ⏏f(5);» | ||
23:11
lsm-desktop left
|
|||
raydiak | \o japhb | 23:12 | |
23:12
lsm-desktop joined
23:14
virtualsue left
|
|||
FROGGS_ | spider-mario: well, we know that parrot is quite mem hungry and not as fast as the MoarVM backend... so my only advice is to try rakudo@moarvm too | 23:15 | |
raydiak saw similar behavior when first trying to write Pray on r-p (>1 year ago though) | 23:20 | ||
23:24
pmurias joined
|
|||
FROGGS_ | @windows users, please test: froggs.de/perl6/rakudo-star-2014.12.1-moar.msi and froggs.de/perl6/rakudo-star-2014.12.1-parrot.msi | 23:24 | |
pmurias | _sri: as far as I know Rakudo Star is just an attempt to bundle some useful stuff, I don't think it meant to be a mark of official recognition of any kind | 23:28 | |
raydiak | methinks people are looking at R* as P5 with its included core modules | 23:32 | |
the rakudo readme and website also strongly urge R* iirc, giving it a pretty official feel | |||
also if you're on windows and don't want the huge hassle of setting up your own build environment, it is literally the only choice we give people | 23:36 | ||
23:37
jack_rabbit left,
isBEKaml joined
|
|||
vendethiel | m: role Foo[::T] {...}; role Foo[Int] {constant TYPE = Int;}; subset FooI of Foo[Int]; say FooI::Type.perl; | 23:39 | |
+camelia | rakudo-moar 32c6e4: OUTPUT«(signal SEGV)» | ||
23:39
BenGoldberg joined
|
|||
_sri | pmurias: what raydiak said | 23:40 | |
raydiak | "On behalf of the Rakudo and Perl 6 development teams, I’m happy to announce the December 2014 release of “Rakudo Star”" <-- maybe this is poorly worded? | 23:42 | |
Timbus | hmm yes. perhaps change 'happy' to 'obligated' | ||
23:43
BenGoldberg left,
BenGoldberg joined
|
|||
raydiak | heh...idk, if there is a line of unofficiality here, all I mean is we've done a terrible job of making it clear | 23:44 | |
_sri was actually under the impression that rakudo star would be announced as the first production ready perl6 | |||
raydiak | I was just wondering to myself the other day "how do they choose which modules are good enough to include in star? what are the criteria?" | 23:45 | |
apparently I should have started by asking who this "they" was :) | 23:46 | ||
_sri | fwiw. i think node.js got the minimal core thing very right, bundling just enough stuff to bootstrap npm | 23:48 | |
23:50
mvuets left
|
|||
raydiak | good point...I'm not sure I get the reason for the whole bundled distribution thing; why is it better than just bundling panda? | 23:52 | |
is it b/c the release is a pre-tested snapshot of a (theoretically) known good working point? | 23:54 | ||
vendethiel | m: role Foo[::T] {...}; role Foo[Int] {constant TYPE = Int;}; subset FooI of Foo[Int]; say FooI::Type.perl; | 23:55 | |
+camelia | rakudo-moar 32c6e4: OUTPUT«(signal SEGV)» | ||
vendethiel | ^ this probably shouldn't segfault :P | ||
no idea what it should do that, jnthn/ TimToady? | |||
pmurias | raydiak: I think the orginal idea was to bundle a known working version of rakudo with a bunch of working modules | 23:56 | |
23:57
kst` joined
|
|||
raydiak | maybe we just say "on behalf of the perl 6 community ...", and put the wording "a community-supported dustribution of Rakudo Perl 6" scattered around in a few places, to make it a little more clear what is intended? | 23:58 | |
or, well, along those lines...ya know | |||
23:59
kst left
|
|||
raydiak | *distribution | 23:59 |