»ö« 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 declaredat /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 %blacUnhandled 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" => 10"bar" => 21"quux" => 32» | ||
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
|