»ö« 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 thou joined 00:05 sftp left 00:17 Circlepuller_ joined 00:38 dayangkun joined 00:44 adu left 00:57 vinian joined 00:58 MikeFair_ left, tokuhiro_ joined 01:02 FROGGS_ joined, MikeFair_ joined, Circlepuller_ left, Circlepuller_ joined 01:03 MikeFair_ left 01:05 MikeFair_ joined 01:06 FROGGS left 01:16 popl left 01:18 sftp joined 01:23 whiteknight left 01:26 benabik left, benabik joined 01:32 jeffreykegler joined 01:44 jeffreykegler left 01:51 scott_ joined 01:52 scott_ is now known as Guest56510 01:56 tokuhiro_ left, vinian left, vinian joined 02:00 gongyiliao left 02:02 ObseLeTe left
diakopter time for some soft serve. 02:03
02:34 am0c left, erkan left, phenny left, Util left, [Coke] left
dalek rl6-roast-data: f7fae37 | coke++ | / (4 files):
today
02:38
rl6-roast-data: f62738e | coke++ | / (3 files):
today
rl6-roast-data: c7635b7 | coke++ | / (4 files):
today
02:41 cjbot joined 02:42 gongyiliao joined 03:02 popl joined 03:08 lateau joined 03:18 mucker joined 03:26 skids left 03:28 gongyiliao left 03:30 cjbot left 03:32 mucker left 03:33 thou left 03:34 lateau left 03:41 lateau joined 03:43 lateau left 03:46 odoacre joined 03:56 adu joined 04:16 cognominal_ joined 04:19 cognominal left 04:38 birdwindupbird joined 05:01 kaleem joined 05:11 FROGGS_ left 05:20 wk_ left 05:29 cognominal_ left 05:30 cognominal joined
MikeFair_ I've been examining what it would take to implement an open source clone of HyperCard and its successors (xTalk family of languages). I was looking at doing this in Parrot, but came across a reference that perl6's eval function can take a language as an argument. Where can I get more info on this? 05:38
I don't really need to write my own language so much as I just need to translate/reparse the input into perl's existing language constructs. 05:39
moritz good morning 05:43
MikeFair_: "translate/reparse the input into (...) existing language constructs" is exactly what a compiler is :-)
and the way to write your own language for eval is multi sub eval($str, :lang! where 'yourlanguage') { write your compiler here } 05:44
MikeFair_ moritz: Good morning!
05:46 cognominal left
MikeFair_ moritz: ahh, hmm, I thought it might be more like a language module... 05:47
moritz: i've got a lot tolearn here, or I might just be in over my head for the time I have to dedicate to it
05:47 cognominal joined
MikeFair_ moritz: My challenge is that the language I want to write/use doesn't really have any special semantics that really require its own language 05:48
moritz: effectively all I believe I need is a different parser for a language like Perl6
moritz: instead my $x = 10; --- it's: put x into 10 05:49
err put 10 into x
instead of: $arr[0] = 8; -- it's: put 8 into the first element of arr 05:51
(Well ok, there might be some magic required to support the "first" "last" "second" "before" after" stuff 05:52
moritz in short, you need a compiler. 05:55
MikeFair_ Yep, but I think I can make the compiler part of the perl program 05:58
what's the difference between a compiler and an interpreter
sorear An interpreter is a device which runs programs. 06:01
A compiler is a device which translates programs from one language to another.
06:05 wtw joined
MikeFair_ nods. 06:05
I think I'm getting it now
MikeFair_ is more used to "using languages" not writing them. 06:06
sorear it's extremely easy 06:07
MikeFair_ So I think I'm considering writing an interpreter in Perl6
06:07 simcop2387 left
sorear A lot of people are a bit sloppy with the word "interpreter" and refer to a combined compiler+interpreter system 06:08
MikeFair_ I can see that
sorear Tcl is a true interpreter: subroutines are stored as strings, even while they are being executed, and there is no such thing as parse time
if you're running a separate parse pass before running the code, you already have a compiler 06:09
MikeFair_ sorear: But since a CPU cannot diretly execute a string how can TCL not parse anything?
sorear MikeFair_: I didn't say it doesn't parse 06:10
06:10 simcop2387 joined
sorear I said it doesn't have a parse time 06:10
parsing in tcl is a continuous process
MikeFair_ sorear: It is imediately executing as it reads each token? 06:11
sorear: it's not taking in a "line" and then figuring out what that line means? 06:12
What do you mean doesn't have a "parse time"
I'm obviously being naive here to consider that the time it takes to parse the strings would be the 'parse time' 06:13
sorear I think more words will not help you here. 06:14
Try it.
MikeFair_ hehe
sorear read "let's build a compiler" by jack w. crenshaw 06:15
follow along
MikeFair_ makes a note.
arnsholt A good example from TCL/shell is that malformed code in a conditional branch will only trigger an error when that branch is taken 06:16
sorear it's 30 years old and describes the construction of a Pascal-subset to Motorola 68000 machine code compiler. It's STILL AWESOME.
arnsholt In a compiled setting the compiler would crap out before exectution starts
06:16 popl left
sorear like every other distinction made by humans, this is a continuum thing 06:17
MikeFair_ arnsholt: Ah that makes sense, I can see that
sorear tcl's quote-based syntax means you can do things like misspell "if" and it won't break the load
06:17 adu left
MikeFair_ I studied the Dragon Book in my compilers class over 10 years ago now. 06:18
moritz aye, "let's build a compiler" is great
MikeFair_ sorear: I can see/get that
sorear sh-3.2$ if false; then xf true; then true; fi; fi
sh: syntax error near unexpected token `then'
moritz I finally understood recursive descending parsing while reading it :-) 06:19
sorear % if 0 { xf 1 { 2 } }
%
Bourne shells typically build an AST from each line then execute that 06:20
if you do "for x in $(seq 1 1000); do echo $x; done" there may be 1000 processes run (unless echo is a builtin in your shell), but the line will only be parsed _once_
whereas for-loops in tcl, the body is parsed anew on each iteration 06:21
moritz though modern TCLs cache it, afaict
MikeFair_ ok I can see what you're talking about there, specifically in the for loop and broken else clause examples -- totally makes sense 06:25
I've got a copy of let's build a compiler downloaded as well. It's a reformatting into DocBook that someone did,but it seems to be complete 06:26
sorear I think I read it before docbook existed *blink 06:27
MikeFair_ hehe - likely so :) 06:28
ok then writing a compiler it is. :) 06:29
So I guess that leaves the question parrot's PCT/PACT or straight Perl6 06:31
specifically I was thinking about using niezca 06:32
sorear P(A)CT is essentially just an older version of NQP
well
fork would be more apt 06:33
MikeFair_ there's also "Winxed" not that I could tell the merits of the distinction
moritz winxed is a high-level language tailored for parrot 06:34
MikeFair_ That would be the target output of my compiler I'm expecting 06:35
Or alternatively NQP
sorear Just output PAST instead, it will be easier and faster
or QAST
06:37 xinming left
MikeFair_ I haven't seen the QAST term before 06:38
MikeFair_ Googles.
sorear QAST is the internal representation that NQP uses 06:39
MikeFair_ ok that makes sense
sorear compiling to QAST is like compiling to NQP, except you can just say QAST::Var.new(...) instead of trying to get the syntax right
06:42 xinming joined
MikeFair_ sorear: One of the things I really want to get out of writing this myself is the ability to have loading a module actually be able to alter the compiler 06:42
sorear: introduce new keywords and such 06:44
06:44 gfldex left, erkan joined, phenny joined, Util joined, [Coke] joined
eiro hello guys 06:45
06:45 gfldex joined
sorear hello eiro 06:45
06:45 kaleem left, kaleem joined
eiro is there an official "documentation start point for newbies" for perl6 ? 06:45
(even if i have to translate in french) 06:46
is the book still a reference ?
sorear perl6.org/doc 06:48
eiro 404 :) GG 06:49
sorear perl6.org/documentation/
eiro damn! i wish i had a decent level in english to contribute to the book 06:51
06:54 SamuraiJack joined
sorear & 06:55
07:07 MikeFair_ left 07:09 brrt joined 07:10 imarcusthis left 07:11 colomon left 07:14 imarcusthis joined 07:20 xdbr joined 07:27 kresike joined
moritz eiro: you can contribute to doc.perl6.org 07:27
kresike good morning all you happy perl6 people
moritz eiro: doesn't require much English skills. Adding usage examples for built-ins is a great way to help
\o kresike
diakopter kresike: good morning fellow happy perl6 person
moritz r: eval 'foo', :lang<bar>;
kresike moritz, diakopter o/
p6eval rakudo bd23ad: OUTPUT«No compiler compiler available for language 'bar'␤ in sub eval at src/gen/CORE.setting:493␤ in block at /tmp/2rhwiZS0wO:1␤␤»
diakopter compiler compiler? 07:28
07:28 hoelzro|away is now known as hoelzro
moritz
.oO( it tries to compile a compiler, and can't find a a compiler to compile the compiler )
07:28
diakopter you're a compiler 07:29
pmichaud it stutters.
moritz you're in a twisted maze of compilers, all alike
dalek kudo/uncool-iterable: a7630e5 | moritz++ | src/core/Exception.pm:
fix error message, diakopter++
07:30
moritz can somebody please run t/spec/S32-array/splice.rakudo on that branch?
it segfaults for me
but it already behaved weirdly on nom, on only that machine
pmichaud good morning, #perl6 07:33
dalek c: 683e079 | moritz++ | lib/X/Eval/NoSuchLang.pod:
X::Eval::NoSuchLang
moritz good am, pm
if t/spec/S32-array/splice.rakudo passes on branch uncool-iterable, we can merge the branch 07:34
pmichaud there's a known bug with the splice opcode for out-of-range arguments (both parrot and nqp)
moritz oh.
pmichaud it's on my to-fix list
but there's also a bug with List.splice in rakudo; it also doesn't process out-of-range arguments correctly
moritz oh right 07:35
the test that segfaults passes -2 to splice
diakopter pmichaud: should Perl 6 encode to NFD on I/O output? or leave in NFC + exploded NFG appendices?
pmichaud diakopter: that probably wants a TimToady++ answer 07:36
tipdbmp r: "ab:cd:ef".substr(3, 5); 07:39
p6eval rakudo bd23ad: ( no output )
moritz r: say "ab:cd:ef".substr(3, 5);
p6eval rakudo bd23ad: OUTPUT«cd:ef␤»
tipdbmp Would this be valid in Perl6: $my_string = "ab:cd:ef"; say $my_string[3 .. 4]; # cd ? 07:41
moritz no
tadzik std: $my_string = "ab:cd:ef"; say $my_string[3 .. 4]; # cd ? 07:42
p6eval std d93fffe: OUTPUT«===SORRY!===␤Variable $my_string is not predeclared at /tmp/DooqFOzHV_ line 1:␤------> <BOL>⏏$my_string = "ab:cd:ef"; say $my_string[␤Variable $my_string is not predeclared at /tmp/DooqFOzHV_ line 1:␤------> $my_string = "ab:…
tadzik yes, no :)
tipdbmp Okay, but why not?
moritz because we reserve .[] for lists
07:43 crab2313 joined
diakopter are pragma per-thread? 07:43
tipdbmp Yeah but lists have @ right? So @list[0 .. 2] is a slice?
moritz diakopter: per scope
tipdbmp: variables holding lists/arrays have a @
tipdbmp: but return values from functions don't have sigils, for example
diakopter moritz: okay, so a thread can change the loadedness of a pragma from when it inherited it from the parent 07:44
moritz diakopter: yes
diakopter (without affecting the other threads) 07:45
moritz the pragmas I can think of right now are compile-time
so a differen thread can only have a different pragma if it comes from a different scope 07:46
diakopter I was discussing 'use codepoints' with TimToady a couple months ago - where the default is to decode I/O input to NFC/NFG,but if you use codepoints, it doesn't collapse stuff 07:47
07:47 GlitchMr joined
diakopter he brought it up and said we should do that pre-6.0.0 07:47
gist.github.com/be27d8cd094f93bed56c 07:50
07:51 wk joined
diakopter zzz 07:55
tipdbmp moritz: So why would "sub stringing" not be supported using the range operator as in: $string[0 .. Inf] # the whole string ? 07:56
Or really just indexing a character $string[$index] vs $string.substr($index); 07:57
moritz tipdbmp: Perl has the philosophy that an operator always does the same thing, regardless of its arguments
tipdbmp: for exmaple + always does numeric addition, and never string concatenation (as JS does, for example) 07:58
tipdbmp: so .[] always does list indexing, even if left-hand side is a string
tipdbmp Okay, I understand. 07:59
moritz in our world view, list indexing and string indexing are different operations, because strings are a rather low level type
tipdbmp r: $string = "ab:cd:ef"; say $string.split(//)[3 .. 4]; 08:00
p6eval rakudo bd23ad: OUTPUT«===SORRY!===␤Variable $string is not declared␤at /tmp/NRHCz_m7PN:1␤»
tipdbmp r: my $string = "ab:cd:ef"; say $string.split(//)[3 .. 4];
p6eval rakudo bd23ad: OUTPUT«===SORRY!===␤Null regex not allowed at line 2, near ")[3 .. 4];"␤»
moritz r: say 'ab:cd:ef'.comb[3..4]
p6eval rakudo bd23ad: OUTPUT«c d␤»
moritz r: say 'ab:cd:ef'.comb[3..4].join
p6eval rakudo bd23ad: OUTPUT«cd␤»
tipdbmp r: my $string = "ab:cd:ef"; say $string.split("")[3 .. 4]; 08:01
p6eval rakudo bd23ad: OUTPUT«c d␤»
tipdbmp =) tnx.
moritz nr: say splice([], 1).perl 08:03
p6eval niecza v19-44-g55e895a: OUTPUT«[].list␤»
..rakudo bd23ad: OUTPUT«Array.new()␤»
dalek kudo/uncool-iterable: f51260e | moritz++ | src/core/List.pm:
guard List.splice against out-of-range arguments
08:11
ChoHag What does q{} mean? 08:12
$r = q{regex};
At least it looks like a regex.
tadzik r: my $r = q{regex}; say $r.WHAT
p6eval rakudo bd23ad: OUTPUT«Str()␤»
tadzik looks like it's just a quoting construct
jnthn morning, #perl6 08:15
tadzik oh hai
arnsholt o/
crab2313 o/
arnsholt jnthn: In re my NQP commit last night, if you think the fix belongs somewhere else, I can do that 08:16
But I'd argue that the problem FROGGS had is a Rakudo/NQP bug and not a problem with his code 08:17
jnthn Yeah, I think it's a bug, just not sure it ain't a more general one.
arnsholt Yeah, that's entirely possible 08:18
08:18 daxim joined 08:21 Patterner left 08:23 Psyche^ joined, Psyche^ is now known as Patterner 08:24 imarcusthis left 08:25 fhelmberger joined
dalek p/toqast: 6f633c7 | jonathan++ | src/ (5 files):
Fix multi-method dispatch.
08:32
08:37 leont joined
pmichaud I'm getting segfaults when building NQP :-( 08:50
moritz pmichaud: I've had one too. Running 'make' again fixed it
and gabor reported one on p6c 08:51
pmichaud indeed, running make again works around it. but that's weird.
maybe a bisect is in order 08:52
jnthn bt? 08:53
pmichaud I don't have a backtrace, no. 08:54
I'm working on something else at the moment so will come back to it later.
jnthn ok 08:55
dalek p/toqast: 0fa77cc | jonathan++ | t/nqp/45-smartmatch.t:
Foss some tests that haven't been run for a long time.
p/toqast: 1ec37cb | jonathan++ | src/NQPQ/Actions.pm:
Fix compilation of positional captures in regexes.
p/toqast: 567beb2 | jonathan++ | src/ (2 files):
Fix pointy and circumfix:<{ }> closure semantics.
jnthn Down to 3 test files failing in t/nqp on toqast
09:01 marmay_ joined
wk hi, tried to look rakudo.org with chromium -- no success 09:08
with firefof, everything ok
moritz wk: what's the problem?
wk other sites (like perl6.org) with Chromium work fine 09:09
moritz: say "Sorry! Google Chrome didn't find site rakudo.org" (translation from Estonian errorpage) 09:10
moritz wk: looks like a DNS error
wk seems like some weird DNS problem
moritz wk: what does dig rakudo.org +short give you on the command line? 09:11
(assuming you run something UNIXish)
wk moritz: hmm, nothing
moritz wk: and without the +short?
wk moritz: still, firefox was able to resolve it 09:12
moritz (nopaste the result somewhere, don't paste it here)
wk moritz: relevany part should be that: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 21013 09:13
moritz: nopaste.me/paste/954630875503b3a8a0c320 09:15
moritz wk: then I'd blame your local DNS resolver
wk moritz: tried from other network with same nameserver and same problem 09:16
dalek p/toqast: b7111e8 | jonathan++ | src/NQPQ/Actions.pm:
First pass at updating multi-subs. They get the same code object and signature handling as multi-methods now. Passes the tests, though some known incompleteness.
09:17
p/toqast: b4e9e8a | jonathan++ | src/NQPQ/ (2 files):
Toss some now dead code.
wk moritz: looks like this is the problem
moritz: thank you!
moritz wk: you're welcome :-)
.oO( #perl6: we even debug your DNS :-)
wk moritz: still interesting how firefox got resolved, i seldom use firefox, could not been in cache too 09:18
moritz wk: it might use its own DNS settings, or something
daxim browsers used to include their own resolvers for performance improvements 09:20
then this broke/hampered ipv6 deployment and they rely on the OS resolver alone
09:21 bbkr joined
wk daxim: do they have setting for their own nameservers? 09:23
daxim not anymore
09:23 cognominal left 09:24 cognominal joined
daxim I've been happier since I've been running my own local nameserver (pdns-resolver pointing at the opennic, and dnsmasq for caching) 09:24
wk i'll look what my ISP has to say
daxim isps are the worst :( 09:25
09:31 bbkr left
dalek kudo/nom: 7b6b230 | moritz++ | src/core/List.pm:
guard List.splice against out-of-range arguments
09:37
kudo/nom: 47e455e | moritz++ | src/ (4 files):
Iterable should not inherit from Cool

while that might be cool for core classes, it is not in the general case
kudo/nom: acc9484 | moritz++ | docs/ChangeLog:
update ChangeLog
kudo/nom: 0be5872 | moritz++ | src/core/Exception.pm:
fix error message, diakopter++
kudo/nom: 39cc71e | moritz++ | src/ (3 files):
type-check fail if a macro application does not return an AST
09:39 dayangkun left
dalek ast: 59ed7d7 | moritz++ | S32-array/splice.t:
use fatal for splice tests that might just fail, not die
09:48
ast: fddfe1c | moritz++ | S06-macros/unquoting.t:
fix up macro tests

test for an exact error type, and unfudge also move some fudge lines directly before the is() line, otherwise the first (!) test always becomes TODOed (maybe a fudge bug?)
p/toqast: 51d8b87 | jonathan++ | src/ (5 files):
Fix attribute initialization for NQP on QAST. We no longer do viviself stuff on attribute lookups, meaning some extra initialization bits should be done.
09:53
ChoHag In the regex <-...>, does the - mean anything? 09:58
moritz ChoHag: yes, it negates a character class 09:59
GlitchMr ChoHag: yes, it means anything that isn't in character class
ChoHag Right, thought so.
Why not !?
GlitchMr ChoHag: isn't ! assertion?
ChoHag I don't know.
moritz because <!foo> is already taken as a zero-width assertion
ChoHag Right.
moritz we could have used the Unicode symbol for "not element of set"
ChoHag So ! is not, and - is not in.
moritz but people we would scream at us for that :-) 10:00
GlitchMr Isn't it possible to modify grammar to support this
moritz it sure is, if you want to patch the source
less trivial if you want to do it by monkey patching 10:01
r: macro a { 'foo' }; say f 10:04
p6eval rakudo bd23ad: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&f' called (line 1)␤»
moritz r: macro a { 'foo' }; say a
p6eval rakudo bd23ad: OUTPUT«===SORRY!===␤Macro did not return AST at line 2, near ""␤»
10:06 vinian left 10:11 crab2313 left 10:12 Guest56510 left 10:23 bbkr joined, MayDaniel joined 10:30 bbkr left 10:43 ObseLeTe joined 10:47 JimmyZ joined 10:59 ObseLeTe left 11:17 colomon joined 11:19 nwc10 joined
nwc10 pmichaud: are you having segfaults on a system with address space layout randomisation? 11:19
[or randomization, if you feel that way :-)]
11:21 cognominal left, cognominal joined
nwc10 (likewise moritz) 11:22
nwc10 assumes that they are all in the land of noms
11:29 xinming left
ChoHag What does || mean in a token block? 11:32
jnthn ChoHag: Sequential alternation 11:33
dalek p/toqast: 5398ace | jonathan++ | t/serialization/0 (3 files):
Correct a wrong signature in serialization tests.
p/toqast: 54db77d | jonathan++ | src/NQPQ/Actions.pm:
Cleanup fallback handling a bit.
p/toqast: 41133c0 | jonathan++ | src/NQPQ/Actions.pm:
Fix vivification when binding into a nested package.
p/toqast: 8d1afcf | jonathan++ | src/NQPQ/Actions.pm:
Contextual lookup falls back to looking in GLOBAL. With this, all of t/nqp passes again.
11:33 imarcusthis joined
11:35 gongyiliao joined 11:37 kaleem left 11:42 kaleem joined 11:53 ObseLeTe joined
dalek p/toqast: 1ec5f69 | jonathan++ | src/QAST/Operations.nqp:
Make next/last/redo in for loops. Means we pass t/qregex and t/p5regex again.
11:55
p/toqast: aa8b245 | jonathan++ | t/qast/qast.t:
Replace a pirop with an NQP op.
12:00 tokuhiro_ joined 12:08 DaimyoKirby joined 12:09 DaimyoKirby left 12:10 benabik left, benabik joined
dalek kudo/nom: 4539e90 | moritz++ | src/Perl6/Actions.pm:
improved error message for macro application
12:11
p/toqast: 93072ff | jonathan++ | src/NQPQ/Actions.pm:
More closure fixups.
cggoebel jnthn++ nqp <=> qast 12:13
jnthn yeah, I got the test suite passing 12:14
nwc10 rah!
jnthn now to see about trying to fix the bootstrap up to use it :)
cggoebel yapc::eu++ new faces and revitalized sorear++
nwc10 jnthn: could you get pmichaud to look at scrollback?
jnthn he's giving a talk at the mo...
nwc10 ah. OK. that would be tricky
jnthn :) 12:15
cggoebel p5p6++
perl6 appears to be firing on all cylinders... while adding cylinders :-) 12:16
dalek p/toqast: 53ee6a0 | jonathan++ | src/NQPQ/ (2 files):
Fix a couple of pir:: bits.
12:21
12:21 leont left
dalek p/toqast: 29dd16d | jonathan++ | src/NQPQ/Actions.pm:
Update pir::const:: handling for QAST.
12:25
c: 4fd9dad | moritz++ | lib/X/TypeCheck/MacroUnquote.pod:
X::TypeCheck::MacroUnquote
12:27
ChoHag Why is DBIish.connect giving me an Any object? 12:39
moritz it shouldn't
what are you doing?
ChoHag $ perl6 -MDBIish -e 'DBIish.connect("Pg", dbname => "dunno", user => "dunno", password => "I know!").say' 12:40
Any()
moritz star: use DBIish; DBIish.connect("Pg", dbname => "dunno", user => "dunno", password => "I know!").say
p6eval star 2012.07: OUTPUT«Cannot locate native library 'libpq.so'␤ in method postcircumfix:<( )> at /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib/NativeCall.pm6:102␤ in <anon> at src/gen/BOOTSTRAP.pm:811␤ in any <anon> at src/gen/BOOTSTRAP.pm:807␤ in method connect at /home/p6ev… 12:41
ChoHag $ PGPASSWORD='I know!' psql -t -h localhost -U dunno dunno -c select\ 1 1
That second '1' is on its own line.
ie. output.
moritz ChoHag: try to add host and port 12:42
it really shouldn't just return Any, but rather die
ChoHag Still says Any. 12:43
moritz also add :RaiseError
or RaiseError => 1
ChoHag Ah.
Password with a space.
missing "=" after "know!" in connection info string
moritz oh my
12:44 ObseLeTe left
ChoHag Now last time I tried hacking with files in lib I broke Rakudo. 12:45
moritz :-)
mst so tar up your install then hack away
ChoHag Well yes NEXT time there will be backups.
But how do I hack about safely
moritz ChoHag: I think the proper fix is to use PQConnectdbParams 12:46
dalek p/toqast: 783f35b | jonathan++ | src/ (9 files):
Fix a bunch of pir:: that miss signatures; also replace some pir:: with nqp::.
ChoHag Specifically the pir file dependencies broke.
moritz that way no escaping is necessary
nwc10 hmm, jnthn is now nearer to the North Pole than last week, and Christmas seems closer
what happens if someone stages a hackathon inside the Artic Circle? 12:47
moritz nwc10: then jnthn is more likely to attend than if you do it on the equator :-)
mst ChoHag: well, the other trick is to git init at the root of your install
12:47 snearch joined
mst ChoHag: and commit the entire thing 12:47
ChoHag But how do I change the files and still have them work? 12:48
mst see, that part I've no idea about, sorry 12:49
ChoHag I don't recall the exact error and don't plan to get it back - it takes almost 10 whole minutes to recompile everything - but it was definitely pir file dependencies.
moritz ChoHag: the key is to check out DBIish from its repo on github
ChoHag In a few cases I recompiled them and all was well for a while.
moritz ChoHag: and there you ahve a makefile, and you can type 'make' to just recompile DBIish
the star distribution isn't meant for those who want to hack what they've installed
ChoHag Hah! 12:50
cognominal p6: $*IN ~~ :r
p6eval rakudo 39cc71, niecza v19-44-g55e895a: ( no output )
ChoHag I don't really plan to, just fix a few modules as I go.
cognominal p6: say $*IN ~~ :r
p6eval rakudo 39cc71, niecza v19-44-g55e895a: OUTPUT«False␤»
ChoHag What's the default search path?
moritz cognominal: in rakudo, .r checks only paths, not file handles
ChoHag: .say for @*INC
then you know 12:51
(DBIish's Makefile explicitly adds lib/ and blib/lib iirc)
cognominal moritz, thx
qp{} is unimplemented or the spec irrelevant? 12:52
moritz yes :-) 12:53
dalek p/toqast: b7921a9 | jonathan++ | src/ (2 files):
Hopefully final round of pir:: fixes.
cognominal I note that there is a p{} too in the spec
p:qq{$filename}
moritz that's probably just a fossil
cognominal if it is it litters, search.cpan.org/dist/Perl6-Doc/shar...ary/IO.pod 12:54
moritz ChoHag: I'm currently not on a machine with a postgres installation, so can't fix right now :(
cognominal: how old is that distribution? 12:55
cognominal ho, I may have googled the wrong place
moritz perlcabal.org/syn/
12:56 pjcj left
moritz arnsholt: does current zavolaj need an NQP newer than rakudo's NQP_REVISION? 12:56
arnsholt Kind of 12:57
moritz 'cause with the recommended revision I get a segfault in one of the tests
arnsholt As of last night, the test suite won't pass without a recent NQP
Yeah, I didn't think of that angle when I pushed that stuff last night
12:59 pjcj joined 13:01 marmay_ left
cognominal I am posting to the guy to supress his package. It is doing more harm than good. Anyway I should have been smart than to consult that doc. 13:01
dalek kudo/nom: 79e226c | moritz++ | tools/build/NQP_REVISION:
bump NQP revision to get nativecall fixes
13:02
p: 17118c5 | pmichaud++ | docs/nqp-overview.txt:
Add nqp-overview, a base file describing various
13:05
p/toqast: 0668780 | jonathan++ | src/NQPQ/Actions.pm:
Fix an issue that busted compilation of the meta-objects.
13:06
p/toqast: 8ad9ff8 | jonathan++ | src/ (2 files):
Fix compilation of .REPR.
p: 7962999 | pmichaud++ | docs/nqp-overview.txt:
Update nqp-overview a bit.
13:07
ChoHag How can I make one hash be the contents of another minus a few keys? 13:08
13:08 kaleem left
moritz just copy all the keys and values over, except those that you don't want 13:08
ChoHag Is there an unzip, and/or is the order of .keys and .values guaranteed the same? 13:10
nwc10 is there a way to treat the hash as a list of pairs, feed them into a grep which discards the unwanted keys, and build a new hash from the resulting list?
ChoHag nwc10: That's more along the lines of what I was after...
moritz sure there is :-)
nwc10 doesn't know the how
moritz my %blacklist = <b c d > X=> 1; my %orig = 'a' .. 'f' Z= 1..*; my %copy = %orig.grep({ not %blacklist{.key} }); say %copy.perl 13:11
nr: my %blacklist = <b c d > X=> 1; my %orig = 'a' .. 'f' Z= 1..*; my %copy = %orig.grep({ not %blacklist{.key} }); say %copy.perl
p6eval rakudo 79e226: OUTPUT«("1" => 2, "3" => 4, "5" => 6).hash␤»
..niecza v19-44-g55e895a: OUTPUT«===SORRY!===␤␤Cannot zip with = because list assignment operators are too fiddly at /tmp/OgU0ee8dzl line 1:␤------> <b c d > X=> 1; my %orig = 'a' .. 'f' Z=⏏ 1..*; my %copy = %orig.grep({ not %blac␤␤Unhandled exception:…
moritz ooh, nieczabug 13:12
r: my %blacklist = <b c d > X=> 1; my %orig = 'a' .. 'f' Z= 1..*; my %copy = %orig.grep({ not %blacklist{.key} }); say %copy.perl; say %orig.perl
p6eval rakudo 79e226: OUTPUT«("1" => 2, "3" => 4, "5" => 6).hash␤("1" => 2, "3" => 4, "5" => 6).hash␤»
moritz no, my own bug
13:12 imarcusthis left
moritz I thought I'd written X=> 13:12
r: my %blacklist = <b c d > X=> 1; my %orig = 'a' .. 'f' Z=> 1..*; my %copy = %orig.grep({ not %blacklist{.key} }); say %copy.perl; say %orig.perl 13:13
p6eval rakudo 79e226: OUTPUT«("a" => 1, "e" => 5, "f" => 6).hash␤("a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5, "f" => 6).hash␤»
13:13 imarcusthis joined
moritz erm, Z=> 13:13
ChoHag: anyway, like this :-)
ChoHag I am still decoding it...
moritz my %copy = %orig.grep({ not %blacklist{.key} }); is the crucial part
Hash.grep operations on a list of Pair objects
*operates 13:15
13:20 skids joined 13:25 sirrobert joined, bluescreen10 joined
dalek p/toqast: d8ac7e5 | jonathan++ | src/QAST/Operations.nqp:
Add missing newtype/setwho nqp ops.
13:25
p/toqast: b98fe61 | jonathan++ | src/ (4 files):
A few more missing pir:: op sigs.
p/toqast: 4e91335 | jonathan++ | src/how/NQPClassHOW.pm:
Avoid a void.
nwc10 Christmas is coming, snowflake by snowflake 13:28
moritz :-) 13:30
tadzik :)
13:36 cjbot joined
sirrobert What's the non-backslashy way of doing the regex in: use File::Find; find :dir('.'), :name(/\.txt); 13:38
jnthn /'.txt'/
sirrobert dang =) I keep forgetting about quoted literals in regexes =) 13:39
thanks
moritz just the same as in mainline code
13:39 benabik left
sirrobert yeah... I did p5 regexp for so long there's a lot of inertia 13:39
moritz nods 13:41
daxim you can do that?? 13:49
daxim head asplode
sirrobert heh
I have an odd issue... 13:50
13:50 xinming joined
sirrobert in one file (in which a very small class is defined), I get a runtime error if I add an extra newline above the class declaration 13:51
the top of the file looks like this: use Some::Lib;\nclass MyClass; 13:52
if I change it to: use Some::Lib;\n\nclass MyClass;
I get a runtime error
missing or wrong version of dependency 13:53
going to try to reproduce in demo code
tadzik wat :) 13:54
13:55 fgomez left
dalek rlito: 7067d36 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - perl5: fix escape for $\ variable
13:58
sirrobert then if I 'make clean' and make again, a different runtime error: 'No STable ad index 11'
dalek p/toqast: 100439a | jonathan++ | src/how/NQP (6 files):
Fix up various bits of the NQP MOP that relied on Parrot Undef to break some circularities.
14:01
sirrobert ok, well I accidentally fixed it and can't reproduce now ...
(ufo fixed it) 14:02
14:04 cognominal_ joined 14:06 am0c joined, kaare_ joined, stopbit joined 14:07 cognominal left
moritz masak++ # ufo 14:12
cjbot @perlbuzz tweeted 'Installing Perl 6 modules with Panda t.co/g9rgiz1V' 14:17
sorear good * #perl6 14:19
cggoebel: don't confuse "revitalized sorear" with "revitalized niecza" 14:20
14:20 sudokode left, sudokode joined 14:22 fhelmberger left
sorear shortest example of an expression which is valid 5 and 6 but evaluates to unrelated values: 14:28
*i
14:29 snearch left
sorear totally different parse, too :> 14:29
14:33 fgomez joined 14:40 jaldhar_ left 14:52 adu joined
colomon sorear: I dunno, you've committed more niecza patches in the last ten days than in the previous two months... 14:53
14:56 JimmyZ left
sorear niecza is getting unmaintainable. 14:57
in a few months, you may find me having made an -Ofun decision to work on NQP guts
cggoebel where are the sore spots? 14:58
sorear the word 'spots' indicates a false assumption. :D
cggoebel ouch
tadzik :)
sorear the whole thing is far too tightly coupled 14:59
tadzik although I'm more like :(
sorear macros may never be supportable due to the way the niecza bootstrap works 15:00
cggoebel sounds like you're describing perl6...
kresike bye all
15:00 kresike left
cggoebel and you've already spent a good bit of time looking at that problem and rejected all the alternative avenues right? 15:02
15:03 benabik joined
cggoebel except perhaps for the avenues forward which would converge on what rakudo is doing 15:03
15:04 tokuhiro_ left 15:05 tokuhiro_ joined
cggoebel is there enough room left for a niecza to converge toward more rakudo design choices while remaining -Ofun and interesting in its own right? 15:05
dalek rlito: 2077216 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - add TODO
15:06
p/toqast: 3d5fdf6 | jonathan++ | src/QRegex/Cursor.nqp:
Avoid compilation error in QRegex when building it with NQP on QAST.
15:07
sorear I dunno 15:09
15:09 tokuhiro_ left
cggoebel I was hopeful that targetting mono would eventually lead toward CIL and DLR and a perl6 implementation with full access to CLR and other CLR languages having full access to perl6 15:09
[Coke] puts cjbot into a loop so he rejoins when he timesout.
15:10 birdwindupbird left
sorear cggoebel: niecza already has full access to the CLR, one of my projects for the next week is to make that friendlier 15:10
cggoebel But I'm talking beyond my level of understanding... Niecza seems avoid reinventing many wheels.
sorear cggoebel: niecza does not participate in the DLR system 15:12
cggoebel rakudo seems to imply that the wheels need to be re-invented
to support second system syndrome done right
sorear We're really serious about reinventing the wheels that need to be reinvented. - TimToady, any errors mine
15:13 wtw left, FROGGS joined
FROGGS hi pals 15:13
cggoebel o/
15:19 wk left
cggoebel well I find the work being done around perl6 inspiring. Having multiple active implementations seems to be a rising tide that lifts them all. niecza++ rakudo++ pugs++ perlito++ 15:20
15:21 am0c left 15:22 adu left, am0c joined 15:23 thou joined
GlitchMr Perlito? Last time I've checked it didn't supported basic features, such as ** 15:31
say(v__NAMESPACE.infix:<**>(2, 2)); 15:32
That code makes sense
Most of Perlito development happens on Perl 5 part 15:33
Perl 5 branch seems interesting - it can even parse stuff like print ${[3..5, 7, 42]}[-1]; 15:37
And run it... all in JS
dalek p/toqast: bf8a3fc | jonathan++ | src/ops/nqp.ops:
Improved diagnostics.
15:39
p/toqast: ba8c901 | jonathan++ | src/NQPQ/ (2 files):
Some grammar compilation fixes.
p/toqast: 6b3ef4b | jonathan++ | src/HLL/Compiler.pm:
A few tweaks to get HLL::Compiler to compile.
p/toqast: 2763317 | jonathan++ | src/NQPQ/Actions.pm:
Fix nibbler assertion compilation.
15:39 leont joined
GlitchMr Perlito seems to force "use strict", but global variables (using "our") seem to work 15:40
... oh, I can type "no strict" 15:41
:)
Also... is it just me or Perlito doesn't support double-quoted heredocs (or heredocs without quotes). Heredocs with single quotes are fine 15:43
dalek p/toqast: 832dbf4 | jonathan++ | src/QAST/Operations.nqp:
Tweak to QAST to get it to not explode when loaded.
15:47
GlitchMr Wait... Perlito doesn't support time()? It would be +new Date / 1000 in JavaScript
Possibly with Math.floor() if compatibility is a concern 15:48
PerlJam GlitchMr: Looks like your chance to contribute a patch! ;-)
15:49 alester joined 15:52 hoelzro is now known as hoelzro|away, xinming left 15:53 xinming joined 15:55 alester left 16:01 brrt left 16:03 Targen joined 16:09 alester joined 16:16 Khisanth left 16:24 Khisanth joined 16:34 raiph joined
daxim re: blogs.perl.org/users/perl_6_reports...08-25.html , what's Math::Polynomial about? 16:35
ChoHag How can I do for %hash.kv -> $k,$v {...} with an iterator?
16:35 larks left
raiph www.reddit.com/r/perl/comments/ywrm...25_perl_6/ 16:35
ChoHag I tried sticking Z in in various incantations but the magic eludes me.
raiph (gotta run. hope to backlog in about an hour.) 16:36
16:37 larks joined
ChoHag Nailed it. 16:38
for %x Z 0..* -> $h,$i and just add .key and .value
daxim r: my %x = foo => 1, bar => 2, quux => 3; for %x Z 0..* -> $h,$i { say $h.perl; say $i.perl } 16:39
p6eval rakudo 79e226: OUTPUT«"foo" => 1␤0␤"bar" => 2␤1␤"quux" => 3␤2␤»
16:40 Khisanth left
daxim that whatever is neat 16:40
colomon ChoHag: note that the order you get things out of the hash is undefined... 16:45
ChoHag I know.
I need a hash converted to a pair of equally-order-undefined arrays. 16:46
16:47 kaleem joined 16:51 am0c left 16:53 Khisanth joined
thou moritz: do you have an idea on how to normalize examples in docs? i agree w/ your comment about the REPL being non-standard. ideal would be to use a format that enables automated verification of examples. perhaps looking for any pod parargraph matching / ^ Example s? \: $ / followed by one or more code blocks; in those code blocks, anything starting with '> ' is considered code, anything else is considered output. run the c 16:54
ode and verify the output. would be brittle depending on how .perl and .gist work, but should be verifiable without too much trouble.
perhaps also allow output to be shown in comments, e.g.: > "exa" ~ "mple" # result: "example" 16:55
or am i over-engineering things... 16:56
masak good morning, #perl6 16:58
arnsholt o/
thou buenos dias, masak 16:59
17:00 sftp_ joined 17:01 quietfan1tic joined, Tene_ joined, Tene_ left, Tene_ joined 17:02 gfldex_ joined
sorear masak!! 17:02
hiya 17:03
leont Good evening
sorear good evening leont.
masak \o/ 17:04
17:06 gfldex left, sftp left, hugme left, Tene left, quietfanatic left 17:08 hugme joined, ChanServ sets mode: +v hugme
masak thou: I don't think you're overengineering things. but I think I would like a solution the less engineered it felt. how much can you do with as little as possible? 17:08
thou masak: i feel my priority is consistency for the reader 17:09
similar level of examples are presented in a similar fashion 17:10
and of course the main point of consistency is that the example code is actually *correct*
once there are enough examples all in a single style of presentation, then it'll be easy to keep to that style for new edits 17:11
so really it's just choosing a good style to normalize on that may be tricky; and automated verification can probably be pretty easy to add for most things after that 17:12
sorear we don't necessarily want all the examples to be complete 17:14
it could get very repetitive that way in some cases
17:16 cognominal_ left
PerlJam I've long wanted a way to write "here's some input, here's some code, here's the expected output" and have a way to extract that as something meaningful for the document processor as well as make it meaningful to the Perl 6 implmentations so that we when we say "Code tested with Niecza v20" we really mean it. 17:16
(for instance)
Like say ... for the "Using Perl 6" book :-) 17:17
17:17 cognominal joined
sorear I've long wanted the roast tests to be marked up in such a way that the individual tests can be extracted without running them 17:17
[Coke] sorear: fudge already does a lot of that work, might be able to build on it to extra indiviudal tests en masse. 17:19
sorear fudge is an awful fudge
PerlJam fudge only tastes good in small doses 17:20
sorear there are many test files with hundreds of tests that are actually partially independant
but there isn't metadata to learn this 17:21
jnthn om nom dinner with stout 17:24
arnsholt For a second I wondered how you had dinner with stdout ^_^
jnthn dinner is much more about stdin :P 17:26
17:26 tokuhiro_ joined
masak .oO( bad dinner: stderr ) 17:27
did I just think that out loud? :)
sorear jnthn: stout ~~ Person? 17:28
nwc10 jnthn: is pmichaud still talking? :-)
pmichaud that guy never shuts up.
nwc10 aha 17:29
jnthn sorear: WAT?!
A stout is a type of beer!
:)
nwc10 pmichaud: repeating question in scrollback, is your NQP SEGV on an OS with Address Space Layout Randomisation?
pmichaud I don't know my address space. I'm on Kubuntu 12.04 if that helps :)
nwc10 in that, I was getting SEGVs on the Rasperry Pi that weren't repeatable. And it seems that the Debian on it does ASLR
sorear do they become repeatable if you disable ASLR? 17:30
there's a file in /proc/sys/vm or /proc/sys/kernel with an obvious name that you need to echo 0 >
thou sorear: yes, maybe something like: Examples:\n\n=comment include-test-preamble('foo')\n\n > example-that-uses-preamble()
nwc10 pmichaud: try running this a few times: perl -e 'warn []'
the output is the address the array is allocated at. On a good old fashioned system it will be the same
with ASLR it will vary 17:31
pmichaud I get a list of twisty little array references, all different.
nwc10 aha. I think you have ASLR
pmichaud (so yes, ASLR it appears to be)
is it curable? ;-)
nwc10 so, that I *think* means a subtle parrot GC bug
pmichaud it could also be a nqp bug
nwc10 but it might be something else related to the ordering of $stuff
pmichaud I had it happen twice in a row. I can try it again and see if it occurs again. 17:32
moritz thou: the examples in the docs so far use say $foo; # output
thou: with the comments vertically aligned
nwc10 IIRC I ran the culprit command under gdb and the backtrace was always from the same place
trying to use a NULL pointer where something non-NULL was expected (a vtable, IIRC)
moritz thou: I like that, because it's valid code, and easy to understand
sorear pmichaud: aslr is curable, echo 0 | sudo tee /proc/sys/kernel/randomize_va_space 17:33
pmichaud well, let's see if I can reproduce it and get a backtrace
thou moritz: i like it too, not sure how to handle a) long code; b) long output; c) multiple lines
sorear but it's one of the main lines of defense against buffer overflow exploits, so best to leave it on when you can 17:34
thou gets the bright idea to look at some other languages' docs for how they've done this
sorear thou: what will you do with examples where the purpose is to demonstrate unreproducable behavior? .WHERE, hash key ordering 17:36
17:36 daxim left, fibo joined
moritz thou: just avoid that 17:37
thou: or make a separate block for the output
thou OK 17:38
17:38 cognominal left
nwc10 pmichaud: this is a backtrace of what happened to me, plus the address from 2 more runs where it happened. In all cases, vtable is NULL 17:38
pasta.test-smoke.org/313 17:39
17:39 cognominal joined
raiph pmichaud: #perl6 summary posted at blogs.perl.org/users/perl_6_reports/ 17:39
pmichaud yeah, I just tried a build and it worked fine.
sounds gc-ish or pointer-ish somehow, yes.
but it must be fairly recent
masak today I've been thinking about how best to mark up source code for formatting on slides. it's an interesting problem, because one wants to point to things in the code itself without offsetting the code too much.
jnthn nwc10: What's being built when that happens? 17:40
nwc10 pmichaud: I think if you re-run enough times (for some value of enough) you should see it again
[Coke] nqp question: does the current standalone nqp compreg a grammar by default? is there code to call to make that happen?
nwc10 jnthn: not *sure*, but the notes in the file suggest it was: ./perl6 t/00-parrot/06-op-inplace.t 17:41
arnsholt masak: Start with syntax-highlighted code perhaps?
nwc10 but I think I had it during builds with nqp too
[Coke] (trying to finalize the partcl cutover to nqp from parrot-nqp, this is the current sticking point.)
arnsholt And then tone down the boring bits and highlight a bit more (maybe) the fun stuff
That's an excellent point, now that you say it 17:42
I should probably think of that when I do code slides next semester
pmichaud raiph++ # #perl6 summary 17:43
sorear arnsholt: have you ever played with lhs2TeX ?
pmichaud [Coke]: grammars by themselves aren't compreged, no. The only things that get compreged are HLL::Compiler objects 17:44
sorear arnsholt: see for instance the stuff on page 5 of www.soi.city.ac.uk/~ross/papers/FingerTree.pdf 17:45
[Coke] so if I have a grammar like: "ARE::Compiler is HLL::Compiler" , how do I force a compreg there? 17:46
moritz pmichaud: how's the star release coming along?
sorear that's not handwritten markup, it's the output of the nicest code formatter I've seen
pmichaud moritz: working on it now
I'm trying to refactor a lot of the build process to be more sane
[Coke] do I just manually invoke pir::compreg?
pmichaud [Coke]: when you call .language('ARE') on the compiler, it compreg's it.
sorear I am somewhat suprised that NQP still participates in the HLL interop protocol 17:47
pmichaud it compregs, but not much else is guaranteed to work at the moment
jnthn Well, we look stuff pu with compreg too
but really it's...just a hash :)
pmichaud I expect NQP to have its own hll interop protocol at some point. 17:48
jnthn *nod*
sorear *blink*
jnthn nwc10: That backtrace is interesting in so far as it's doing a compile-time multi dispatch analysis
[Coke] Partcl::Compiler.language("Partcl"); -> Null PMC error
jnthn Does --optimize=off make it go away?
pmichaud [Coke]: normally one would do .language on an instance of Partcl::Compiler these days, not the type object 17:49
just a sec 17:50
arnsholt sorear: Can't say I have, but that does look purdy
[Coke] pmichaud: my $comp := Partcl::Compiler.new();$comp.language("Partcl");
(also NPE) 17:51
pmichaud gist.github.com/3490798
[Coke] this in a copy of partcl-nqp's nqp branch with a few local mods.
pmichaud [Coke]: okay, that's a little weird then. You are talking about nqp, yes, not nqp-rx ?
arnsholt sorear: I did use algorithm2e in my master's thesis, but that's pseudo-code, not real code
[Coke] what is "NQPHLL" ? 17:52
pmichaud: yes, I'm trying to finish off the conversion to nqp.
17:52 xinming_ joined
pmichaud NQPHLL loads in the various HLL libraries 17:52
i.e., HLL::Grammar, HLL::Compiler, etc. 17:53
jnthn The stuff in src/HLL
[Coke] I want to reorg some of the git commits before pushing.
17:54 xinming left, fibo left
[Coke] I must not be loading Partcl::Compiler in here. Hurm. 17:55
pmichaud if you're missing "use NQPHLL" that might explain the NPA
dalek ar/newbuild: af4e769 | pmichaud++ | t (3 files):
Start refactoring module handling; move templates where they go.
17:56
[Coke] added that in, nothing. it's dying on calling .new on Partcl::Compiler
the lack of docs in nqp makes this very hard to build more stuff on, btw. :|
pmichaud yes, we know -- nqp docs and tutorials is one of my tasks for this week's hackathon
but I need to get the R* release out first 17:57
[Coke] I was very happy I found your original attempt from ages past, which helped immensely.
\o/
pmichaud others here are also working on various nqp docs
sorear jnthn: how does nqp/bs handle changes in the serialized data format or the C<->NQP ABI?
[Coke] \o/
jnthn sorear: There's a version number.
sorear: So it already knows what version it's reading. 17:58
sorear: If there's an incompatible change, serialization.c will have to support the old way and the new way (for reading) for a time
sorear and there are conditionals to adaptively handle the new and old versions?
dalek ar/newbuild: 4f2c976 | pmichaud++ | win32/rakudo. (2 files):
Remove obsolete win32 build stuff.
jnthn Though I've not had any of those yet :)
arnsholt sorear: OTOH, since the code slides next semester will be Python code, I'm not sure lhs2tex is a perfect fit ;)
jnthn Yes, it'd be conditionals. 17:59
sorear what about ABI changes? if you fiddle the 6model ops, do you have to make sure the serialized compiler can still use the old ones for long enough to redo the bootstrap?
dalek c: abefe1a | moritz++ | lib/Buf.pod:
document Buf.subbuf
ar/newbuild: 95961bd | pmichaud++ | / (12 files):
Move darwin_dmg stuff into ports/ .
18:00
jnthn sorear: The ops are orthogonal.
sorear: Well, inlining info aside, perhaps.
dalek ecs: 4238daf | moritz++ | S32-setting-library/Containers.pod:
[S32::Containers] document Buf.subbuf
18:02
nwc10 jnthn: was this question for me? 18:48 < jnthn> Does --optimize=off make it go away? 18:03
18:04 gfldex_ is now known as gfldex
jnthn nwc10: yes 18:04
sorear: To clarify - the stuff serialization.c doeals with is just objects, not bytecode
nwc10 jnthn: I don't have an intact build tree on the system to be able to answer that 18:05
jnthn ah, ok 18:06
nwc10 I was more hoping that if Pm can get something seemingly similar on a more common architecture, it would be easier to debug that
18:11 raiph left
sorear jnthn: I know they are orthogonal. That's why I'm asking about both. 18:12
jnthn: Does the code in stage0 impose constraints on how you can evolve the op set?
jnthn Yes
But it's not an ABI issue because we save pir, not pbc
In reality, it's not been a practical problem very often. 18:13
pmichaud (and one of the reasons we save pir is to avoid opcode migrations.)
sorear considers pir an ABI thing because of how low level it is 18:14
[Coke] pmichaud: if I run that gist, I get: Method 'ast' not found for invocant of class 'Undef' 18:16
18:17 kaleem left
[Coke] (running it, then at the prompt, type 3) 18:17
moritz raiph++ # #perl6 sumamry 18:28
erm, modulo speling
masak .oO( in the early autumn, vowels start their long migration back east ) 18:30
moritz masak: did you see my macro (error classes) commits?
masak haven't backlogged yet. 18:31
a bit knackered tonight due to $dayjob.
will get to it.
moritz
.oO( git backlog )
18:33 mattp_ left
moritz idly wonders if the injection technique used by the debugger can be used to create a code coverage tool too 18:34
[Coke] is at a programming conference. There was only coffee at breakfast, and there are no power outlets in the breakout sessions. 18:35
[Coke] shakes his head.
18:35 mattp_ joined
nwc10 [Coke]: what sort of programmers were they expecting? 18:36
moritz: that's very perl-5 esqe - taking the infrastructure used for the debugger, and re-purposing it for code coveragae, and for profiling 18:37
18:39 wk joined
moritz nwc10: we don't throw everything 5y away :-) 18:40
dalek ar/newbuild: 656aa9a | pmichaud++ | build/ (4 files):
Remove other obsolete build stuff.
ar/newbuild: bd361ee | pmichaud++ | Makefile:
Revise where source tarballs end up.
jnthn moritz: Yes, that technique could be used for such a thing. 18:41
18:41 krunen_ joined
moritz I *almost* want to start with one right away 18:41
pmichaud [Coke]: I think the gist requires a full addop expression 18:42
jnthn moritz: What do I need to do to push you to do it? ;)
pmichaud checking
jnthn moritz: We were discussing over dinner here building a profiler with it
moritz jnthn: give me three free days :-)
pmichaud ah, that gist isn't a complete example -- I had modified it for another topic but didn't put it into a running state :-(
as soon as I get the star release done, I'm definitely writing some nqp compilers. 18:43
nwc10 nqp compilers?
(For other languages?)
jnthn yes 18:44
dalek p/toqast: b089723 | jonathan++ | src/NQPQ/Actions.pm:
Update a bunch of commented out code.
p/toqast: eff62f7 | jonathan++ | src/NQPQ/ (2 files):
Update initializations.
p/toqast: c3e4578 | jonathan++ | src/how/NQPClassHOW.pm:
Disable SC write barrier for updating mixin cache in NQP.
p/toqast: c9846f8 | jonathan++ | src/NQPQ/World.pm:
Fix syntax fail.
pmichaud yes, example compilers written in nqp 18:45
[Coke]: if you have an up-to-date-ish repo, I can also work on partcl
(or I can leave it for you to do if you want)
dalek c: 201ee4d | moritz++ | lib/List.pod:
[List] start to switch some examples away from REPL style
18:47
masak (example compilers in nqp)++
dalek c: 4d48263 | moritz++ | lib/List.pod:
[List] switch rest of the examples away from REPL style
18:49
18:49 fhelmberger joined
TimToady diakopter: output should generally be NFC (which implies exploding synthchars) 18:50
18:51 fhelmberger left
diakopter what defines the order of the synthchars following the NFC codepoint? 18:53
I meanq.
what defines the order of the combining marks following the NFC codepoint?
18:53 sirrobert left
TimToady the order they were when you generated the synthcode, I suppose 18:53
diakopter their Canonical Combining Class followed by codepoint order? 18:54
TimToady that has to get recorded somewhere, or the NFD of that sequence does
[Coke] pmichaud: I'll push my changes this evening.
TimToady you can't necessarily just rearrange marks in a different order
diakopter recorded from the original input? what if two inputs compose to the same synthetic? just use the first one? 18:55
TimToady presumably
cjbot @perlbuzz tweeted '#perl6 summary for 2012-08-25 t.co/BWe5G5mP'
18:55 sivoais left
TimToady but presumably the original order matters, so if the NFD doesn't match, they're two different synths 18:55
alester Does cjbot follow @perlbuzz or just #perl6 hashtag? 18:56
[Coke] alester: github.com/coke/cjbot/blob/master/bin/cj.pl#L10
alester What's the "cj" mean? 18:57
diakopter but 'use codepoints;' disables the ->NFD->NFC->NFG encoding when I/O inputs a string or concat/join joins stuff?
lunch&
[Coke] hysterical raisins. It actually stands for Cyber Joao.
oh, maybe even João. 18:58
historically, github.com/coke/tigerlily/blob/mas...ions/cj.pl 18:59
dalek ar/newbuild: 6189049 | pmichaud++ | / (3 files):
More build updates.

re-use NQP's Configure.pm library.
19:01
19:01 GlitchMr left
dalek ar/newbuild: 28a4e5d | pmichaud++ | skel/tools/lib/NQP/Configure.pm:
Update NQP::Configure script in tarball.
19:06
cjbot @hnfirehose tweeted '#perl6 summary for week ending 2012-08-25 | Perl 6 Reports [t.co/TOP1bWgF]: t.co/Tbhre4q6' 19:07
19:07 bluescreen10 left
alester [Coke]: that still doesn't tell me what "CJ" means. But I guess you're saying it's no meaning at all. 19:08
19:08 nwc10 left, sivoais joined
TimToady sorear: I've been mulling the hash assignment question, and it seems to me that if a hash occurs where a key or a pair is expected, the hash should return hash.pairs, but if the hash occurs where a value is expected, it should stay as an item 19:09
19:09 brrt joined, brrt left
masak +1 19:10
moritz so, just like Pair
masak how strangely consistent! :) 19:13
19:15 obra__ is now known as obra
sorear TimToady: conveniently, that's exactly what niecza does now. 19:16
19:16 bonifatio left
dalek rlito: 2908279 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - perl5: fix eval string emitter
19:16
diakopter TimToady: bump last question 19:17
19:20 crazedpsyc left, Tene_ is now known as tene
TimToady the problem with 'use codepoints' is that it's easy to tweak the meanings of functions, but hard to tweak the meanings of methods 19:20
so we'll probably end up just marking the inputs for what level of abstraction is desired (if not NFG) 19:21
and then the functions/methods only work between compatible abstraction levels, however we choose to define that
moritz tweaking the methods is easy if you use a different class :-)
TimToady precisly
*sely 19:22
the idea of using a pragma to set the defaults is probably a bit old-fashioned now
19:22 Circlepuller joined
diakopter oh, I figured the VM would have that pragma hook 19:23
moritz which VM?
but I agree with TimToady, it's something that belongs into the file handle
diakopter you're the one who suggested the pragma a few weeks ago :)
moritz maybe it wasn't old-fashioned a few weeks ago :-) 19:24
19:24 crazedpsyc joined
diakopter er months 19:24
TimToady I occasionally change my mind that quickly :)
geekosaur fashions change almost as quicly as they do in the real world!
19:24 Circlepuller_ left
moritz geekosaur: do you mean to imply that programming isn't part of the real world? :-) 19:25
19:25 SamuraiJack left
diakopter ok marker on the filehandle or socket is great with me 19:25
TimToady I think I was suggesting that we require a 'use codepoints', but I suppose we should be requiring the equivalent on the open right now
cjbot @PursueMobile tweeted '#perl6 summary for week ending 2012-08-25 | Perl 6 Reports [t.co/pyka738H] t.co/tHsQrEZw'
TimToady (until we really get NFG)
but I think we can just be sloppy till NFG happens 19:26
since NFC ≅ NFG for languages with precomposed forms
diakopter btw the nfc algorithm first explodes to nfd 19:27
then to nfc
TimToady well, if an nfc has no additional marks, it can translate directly to itself as an optimizaiton 19:28
(I'd think) 19:29
diakopter actually the spec says the are one to one singletons
*there
one way 19:30
so they wouldnt compose back to themselves 19:31
luckily theyre well marked in th db 19:32
[Coke] alester: it doesn't mean anything to you, no. 19:37
alester Does it means something to yoU?
[Coke] yes
alester OK, so what is it?
[Coke] I used to work for a guy named Joao.
cjbot @HackerYolk tweeted '#perl6 summary for week ending 2012-08-25 | Perl 6 Reports [t.co/4u3Yosod] - t.co/TttO3U0J /HN'
alester Aha, ok, now it comes together. 19:38
I thought that your "Cyber Joao" thing was a funny/throwaway.
19:46 tene is now known as Tene
dalek p/toqast: beae563 | jonathan++ | src/ModuleLoader.pm:
Various module loader tweaks.
19:46
p/toqast: 108edef | jonathan++ | src/ModuleLoader.pm:
Fix thinko.
p/toqast: 0d79363 | jonathan++ | src/QRegex/NFA.nqp:
Simplify an our to a my.
20:00 krunen_ left
dalek p: f53ead7 | (Elizabeth Mattijsen)++ | examples/json.nqp:
Recovered JSON example from bitrot
20:01
masak liz! \o/ 20:06
jnthn :D
20:10 bluescreen10 joined 20:15 smash left 20:18 smash joined
dalek p/toqast: e1d9225 | jonathan++ | / (4 files):
Split QAST nodes out from QAST compiler to resolve dependency issues.
20:23
pmichaud I'm thinking of using git submodules to manage modules and other items in the star repository. Any opinions?
(instead of doing it within the makefiles as we do now) 20:24
sorear i've used submodules, they're a smidge fiddly but work 20:25
20:25 bluescreen10 left
pmichaud well, what we have now is more than a smidge fiddly. :-/ 20:26
20:26 bluescreen10 joined, Liz_ joined
Liz_ found the real #perl6 20:27
20:27 Liz_ is now known as lizmat
pmichaud welcome Liz! 20:28
TimToady lizmat: welcome to the real #perl6
lizmat :-) 20:29
tadzik lizmat! \o/ 20:30
20:31 popl joined 20:33 wamba joined
masak yay a lizmat! \o/ 20:34
lizmat I know it's a bit like food for Swedish people
dalek ar/build2: 5aaca99 | pmichaud++ | / (27 files):
Try maintaining Perl 6 modules as git submodules.
ar/build2: 58aa00d | pmichaud++ | / (2 files):
Add rakudo-debugger as a git submodule.
lizmat I hope I'll be at least be able to give food for thought
20:35 tokuhiro_ left 20:36 wamba left, wamba joined 20:37 kaare_ left 20:38 wamba left, birdwindupbird joined
__sri gist.github.com/3491618 # the JRuby guy about CLR vs JVM for dynamic languages :) 20:38
20:42 wamba joined
TimToady interesting 20:42
geekosaur so in other words both the CLR and the JVM are defective, just in different ways 20:43
someone somewhere needs to go study Smalltalk
diakopter defective for certain needs 20:44
20:44 wamba left, wamba joined
dalek ar/build2: b8485eb | pmichaud++ | Makefile:
Modules are now handled as git submodules, remove from top-level Makefile.
20:45
leont Still sounds like the JVM is a better target for Perl 6 20:48
diakopter yeah, if you use the VM objects directly and add methods using the VM.. but neither neicza nor rakudo do that; they build the object/type system on top of (or beside) the VM's type system 20:51
*niecza
masak .oO( niether niecza ) 20:52
sorear leont: Perl 6 has the ability to introspectively runtime-call pretty much any sub in the program. if you have a program with 10,000 subs, the JVM seems to want 10,000 classes implementing a common virtual method
20:53 birdwindupbird left
TimToady moritz: re irclog.perlgeek.de/perl6/2012-08-23#i_5922626 operator adverbs are treated as fake infixes 20:57
masak 'night, #perl6 21:00
felher o/ masak 21:01
21:04 skids left 21:07 gongyiliao left
dalek p: d895139 | (Elizabeth Mattijsen)++ | docs/serialization_format.markdown:
Fixed some spelling errors
21:09
diakopter if I were imagining an optimizing JIT for a Perl 6 VM, I might do thorough points-to analysis to prove some variables would always be of a given type, then integrate with the class composer so method calls on the object are inlined with a single check of the class' composition sequence number 21:16
so when a class is re-composed, all its inlined method callsites expire themselves and re-inline to their new invocations 21:17
"inline" used loosely
(of course, it would have to prove the types of the arguments as well) 21:18
(if any)
ChoHag Perl 6 which I'm doing the fun stuff in has json-rpc supporting version 2.0, perl 5 which I'm using for the boring GUI stuff only apparently supports json-rpc version 1.1. 21:29
dalek p: 840d74f | (Elizabeth Mattijsen)++ | docs/serialization_format.markdown:
Some tiny clarifications
ChoHag This is both amusing and annoying. Are there any other rpc-like modules for perl6, and/or support for json-rpc 2.0 for perl 5?
I started off using Bailador to implement something like rest, then decided I'd prefer it if somebody else has already done the work. 21:33
felher sorear: i think you did mention a "let's build a compiler book/tutorial/*". Is compilers.iecc.com/crenshaw/ what you were referring to? 21:35
sorear yes. 21:36
felher sorear: great, thnx :) 21:37
21:38 leont left 21:40 cjbot left
felher 'night, #perl6 21:42
21:43 cjbot joined
diakopter [Coke]: did you make it auto-rejoin? 21:44
dalek p/toqast: 6889a72 | jonathan++ | src/NQPQ/Actions.pm:
Fix attribute defaults.
p/toqast: 7375d16 | jonathan++ | src/HLL/CommandLine.pm:
Update HLL::CommandLine.BUILD to cope with post-vivibase world.
p/toqast: c138dfb | jonathan++ | src/NQPQ/Actions.pm:
Fix lookup of non-existent keys/indexes in hashes/arrays so it doesn't give back null.
p/toqast: 0001e13 | jonathan++ | src/ (3 files):
Few attribute fixes.
p/toqast: a6a15f4 | jonathan++ | src/NQPQ/Actions.pm:
Fix traits on protos.
21:58 stopbit left
[Coke] diakopter: yes. he's in a loop, so when he dies, he reconnects. 22:11
ChoHag [where] are perl 6 threads documented?
Also, I found an rpc 2 client. 22:12
tadzik ChoHag: perlcabal.org/syn/S17.html but it's just a draft 22:14
benabik I think niecza implements some of it? 22:15
diakopter ChoHag: niecza has threads through the .Net libraries but nothing like described in S17
sorear niecza does not implement any of the standard API, because the standard API has a lot of complicated features and I was lazy
see lib/Threads.pm6 in your niecza checkout
ChoHag Oh :( 22:16
22:20 bluescreen10 left
ChoHag How high on the list of Rakudo's priorities is threading? 22:23
benabik There's a reasonable threads implementation pending for Parrot. There's a lot of corner cases to sort out and we want to get it right. 22:24
ChoHag I assume it can at least fork and do ipc?
benabik Honestly, I'm not sure.
ChoHag O
benabik Mostly because "just fork" isn't as simple as it sounds.
ChoHag I know. 22:25
benabik Simple if you run only on Unixen, but Parrot also does Windows. And fork on Windows takes some work. It might do it, but I don't remember.
And looks like no. 22:26
I think there was an old threads-ish system that got yanked because it caused more issues than it solved, 22:27
diakopter I suspect the "corner cases" are bigger than coroners 22:28
ChoHag Hmm I guess I could stick a simple forking wrapper aruond it.
diakopter *corners
ChoHag But I don't forking want to.
benabik The biggest issue that I'm aware of at the moment is a rare issue with sleep and threads. There were not-rare issues with that, but they've been sorted out. 22:30
22:30 skids joined 22:36 am0c joined 22:38 wamba left
dalek p/toqast: 094eda3 | jonathan++ | src/HLL/World.pm:
Should not require a description in HLL::World's BUILD.
22:38
p/toqast: b23d950 | jonathan++ | src/ModuleLoader.pm:
Fix module loader.
p/toqast: 2e802b0 | jonathan++ | src/pmc/sixmodelobject.pmc:
Fail usefully in a bunch of places we could get a C-level stack overflow.
p/toqast: c4c84a3 | jonathan++ | src/QRegex/NFA.nqp:
A couple of NFA code tweaks.
p/toqast: ca01653 | jonathan++ | src/how/NQPClassHOW.pm:
Need to explicitly set defaults in the meta-objects, since we've eliminated use of Parrot Undef.
p/toqast: 16ccd1a | jonathan++ | src/QAST/Node.nqp:
Need to be explicit about lazy initialization of QAST::Node hash.
22:38 cognominal left 22:39 whiteknight joined
moritz it seems that the step from passing all nqp tests to being good enough to bootstrap is quite steep 22:40
jnthn indeed. 22:41
22:41 gongyiliao joined
moritz so, do we need better test coverage for NQP? 22:41
jnthn moritz: Well, some of it is change of semantics.
moritz: I've eliminated our usage of Parrot Undef 22:42
22:43 lizmat left
moritz t/nqp/40-lists.t ................ Unrecognized nqp:: opcode 'nqp::ishash' 22:48
oh, is that because it's nto yet bootstrapped? 22:50
jnthn moritz: correct 22:51
moritz: I haven't pushed the bootstrap switchover stuff yet 22:52
There's not much point looking at the branch until I get to that point
moritz ok
22:55 popl left, cjbot left 22:56 MayDaniel left 22:58 cjbot joined
jnthn sleeop & 22:59
diakopter :)
dalek p: 74c0172 | moritz++ | tools/build/PARROT_REVISION:
bump PARROT_REVISION to after the io_cleanup1 merge
23:01
kudo/nom: 71fc9c5 | moritz++ | / (3 files):
Adapt socket code to parrot's changes. Bump NQP_REVISION.
23:12
23:16 ObseLeTe joined 23:28 tokuhiro_ joined 23:31 cjbot left
dalek ast: 3c3f25b | moritz++ | S32-array/splice.t:
unfudge a splice test for rakudo
23:31
23:33 sftp_ left 23:34 cjbot joined, sftp joined 23:40 mcglk left, mcglk joined 23:41 gongyiliao left 23:42 cognominal joined 23:48 cognominal left 23:49 kst left 23:57 kst joined 23:59 cjbot left