pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:01 Exodist left 00:12 eternaleye joined, Ontolog left 00:46 mncharity joined 00:56 justatheory left 01:03 kanru left 01:05 AzureStone_ joined 01:07 silug joined, AzureStone left 01:11 kanru joined 01:26 hercynium joined 01:27 smg joined
pugs_svn r22331 | putter++ | [elf] elf_h forked from elf_g. 01:29
r22331 | putter++ | elf_g remains the recommended stable version of elf. 2 months old today.
r22331 | putter++ | elf_h is the unstable development head.
r22331 | putter++ | Dusted TODO. elf_g now uses its own copy of STD_red.
01:31 mncharity left 01:37 Ontolog joined 01:55 Ehtyar joined, Ehtyar left
pugs_svn r22332 | putter++ | [STD_red] First rough draft of a dump format for Common Lisp. 01:56
02:07 Alias_ joined 02:11 Alias_ left 02:12 Alias_ joined
s1n moritz_: ping 02:15
02:19 redicaps joined 02:32 Ontolog_ joined 02:37 Ontolog_ left 02:41 kanru left 02:42 wknight8111 left 02:46 hercynium_ joined, hercynium left 02:51 kanru joined 02:59 redicaps left 03:03 elmex_ joined 03:17 elmex left, elmex_ is now known as elmex 03:24 lion_ joined 03:50 lion_ left, justatheory joined
Ontolog moritz_: what was that bug number affecting returning a list of Match objects? 03:54
04:00 sri_work joined 04:21 charsbar left, xuser left 04:26 charsbar joined 04:36 drbean left 04:38 eternaleye_ joined
s1n moritz_++ good work on the test suite lately 04:39
Tene moritz++ I agree 04:43
s1n we're over 5000 passing with over 8000 planned in t/spec! 04:44
04:51 yves left, yves joined 04:54 hercynium_ left 04:55 eternaleye left 05:46 Psyche^ joined 05:50 ahmadz left 06:03 Patterner left, Psyche^ is now known as Patterner 06:20 eternaleye_ is now known as eternaleye 06:36 ashizawa joined 06:38 justatheory left
Ontolog I'm going through the PCT tutorial. I have an error: PAST::Compiler can't compile node of type Monkey::Grammar 06:46
Is there any way to tell parrot to be more verbose? I would like to know *why* can't it compile the node
and no, options w and v don't help 06:47
oops i'm on the wrong channel :p
07:13 jferrero joined 07:23 iblechbot joined 07:24 pmurias joined
moritz_ re 07:34
s1n: pong
pmurias moritz_: hi 07:36
moritz_ pmurias: good morning ;)
pmurias good morning 07:37
Ontolog i don't understand why I am getting <integer_constant> => PMC 'Monkey::Grammar' => "Hash[0x83a4298]" @ 2
when I should be getting <integer_constant> => PMC 'Monkey::Grammar' => 1 @ 2 07:38
moritz_ you have a capture more than you think?
Ontolog can't be 07:40
input is a=1
moritz_ what does your rule integer_constant look like 07:41
pugs_svn r22333 | pmurias++ | [smop] changed smop back to a static library so pugs linked with it doesn't need LD_LIBRARY_PATH 07:42
Ontolog rule integer_constant { \d+ {*} } 07:43
pmurias does making pugs accept both perl6 and m0ld seem sane? 07:44
07:45 Tene left 07:52 dduncan joined
moritz_ pmurias: if the m0ld is somhow delimited... why not? 07:53
08:00 Tene joined 08:09 barney joined
pmurias moritz_: i could make m0ld delimited or use a -F option, what i' worried about if it's not making pugs too smopish 08:12
08:14 zamolxes left
moritz_ that's not a worry I can address 08:14
pmurias nobody else is (visibly) working on pugs so that's propably not a big worry 08:16
08:18 dduncan left 08:24 masak joined
masak moritz_: aye. I generally backlog. :) 08:28
too much interesting going on here.
moritz_ masak: so did you backlog parrotsketch? ;-) 08:29
pugs_svn r22334 | pmurias++ | [pugs] Pugs.Embed.M0ld imports a modulized M0ld.hs which now lives in src/ 08:30
masak moritz_: no, doing that now
moritz_ masak: in short, green light for your commit bit
masak \o/
moritz_ either pmichaud or I will be mentoring you 08:31
masak I look forward to that
wow, this feels much better than I thought it would :)
moritz_ hehe ;) 08:32
08:32 Tene left 08:34 smtms_ joined 08:37 Tene joined 08:38 smtms left, smtms_ is now known as smtms
masak perl6: 1 ?? 2 : 3 # this makes Rakudo's parser freak out 08:41
p6eval rakudo 31377: OUTPUT[ResizablePMCArray: Can't pop from an empty array!ā¤current instr.: 'parrot;PGE::OPTable;parse' pc 1754 (compilers/pge/PGE/OPTable.pir:495)ā¤]
..pugs: OUTPUT[*** ā¤ Unexpected ": 3"ā¤ expecting operator or "!!"ā¤ at /tmp/4OqfHgrmYE line 1, column 8ā¤]
..elf 22334: OUTPUT[Parse error in: /tmp/4kmbr4ZrzDā¤panic at line 1 column 0 (pos 0): Can't understand next input--giving upā¤WHERE: 1 ?? 2 : 3 # this makes Rakudoā¤WHERE:/\<-- HEREā¤ STD_red/prelude.rb:99:in `panic'ā¤ STD_red/std.rb:76:in `scan_unitstopper'ā¤ STD_red/std.rb:224:in `comp_unit'ā¤
..STD_r...
08:41 Ontolog left
masak did we create an RT ticket for that? I don't remember 08:41
08:42 iblechbot left
moritz_ masak: yes, you did 08:43
perl6: 1 ?? 2 !! 3
p6eval pugs, rakudo 31377: RESULT[2]
..elf 22334: OUTPUT[Unknown rule: infix:conditionalā¤It needs to be added to ast_handlers.ā¤ at ./elf_f line 1918ā¤]
masak elf++ # awareness of its own limits
09:00 penk joined
masak rakudo: say +("1" ~ "0" x $_) for 308, 309 09:03
p6eval rakudo 31378: OUTPUT["load_bytecode" couldn't find file 'PGE.pbc'ā¤current instr.: 'parrot;PCT::Grammar;onload' pc 0 (src/PCT/Grammar.pir:41)ā¤]
masak recompiling again? :) 09:04
rakudo: say +("1" ~ "0" x $_) for 308, 309 09:07
p6eval rakudo 31378: OUTPUT[1e+308ā¤infā¤]
09:11 wknight8111 joined 09:17 pjcj left 09:25 cosimo joined 09:28 barney left 09:30 zamolxes joined
pmurias moritz_: pugs -Bm0ld will work soon how should it be added to the evalbot? or do you have time to add it yourself? 09:46
10:07 pmurias_ joined, pmurias left 10:17 wknight8111 left 10:24 masak left 10:35 clintongormley joined 10:56 clintongormley1 joined 10:57 clintongormley left 10:58 wknight8111 joined 11:08 Alias_ left 11:12 ilogger2_ joined 11:47 clintongormley joined 11:50 pjcj joined
pugs_svn r22335 | pmurias++ | [pugs] pugs -Bm0ld creates a simple mold frame 11:50
pmurias @tell ruoso it turned out rootnamespace was an undead objects (it got DESTROYALLED) just after creation and "lived" on with a counter near 999 11:52
lambdabot Consider it noted.
12:24 abra joined 12:26 pmurias_ joined
pugs_svn r22336 | pmurias++ | [pugs] [smop] the haskell gc does the refcounting for the SMOP__Objects passed around in haskell code 12:39
13:05 zamolxes joined 13:10 abra joined 13:16 ahmadz joined, masak joined
rakudo_svn r31379 | pmichaud++ | [rakudo]: spectest-progress.csv update: 177 files, 3779 passing tests 13:17
13:23 TimToady joined, masak joined, ahmadz joined, abra joined, zamolxes joined, pmurias_ joined, pjcj joined, clintongormley joined, iblechbot joined, wknight8111 joined, cosimo joined, Tene joined, smtms joined, jferrero joined, Patterner joined, yves joined, eternaleye joined, charsbar joined, sri_work joined, elmex joined, kanru joined, smg joined, silug joined, baest joined, rafl joined, japhb joined, kolibrie joined, Maghnus joined, Southen_ joined, ptman joined, buubot joined, jan_ joined, simcop2387 joined, johto joined, BinGOs joined, aindilis joined, jiing_ joined, [particle] joined, xinming joined, cognominal joined, apeiron joined, alester joined, lambdabot joined, jjore joined, arguile joined, Maddingue joined, diakopter joined, cls_bsd joined, irc.freenode.net sets mode: +o TimToady, buu joined, integral joined, mtve joined, hcchien joined, pugs_svn joined, pochi joined, idemal joined, Guest70230 joined, spinclad joined, nnunley joined, szbalint joined, PerlJam joined, beppu joined, ilbot2 joined, les joined, Caelum joined, Grrrr joined, jrockway joined, IRSeekBot joined, allbery_b joined, broquaint joined, clkao joined, rhr joined, SamB joined, zostay joined, kcwu joined, ewilhelm joined, Juerd joined, Guest16015 joined, r0bby joined, moritz_ joined, obra joined, Khisanth joined, cxreg joined, sunnavy joined, avar joined, lisppaste3 joined, kst joined, fullermd joined, bennymack joined, sirhc joined, REPLeffect joined, bennymack-work joined, pmichaud joined, c1sung joined, gbacon joined, pasteling joined, rakudo_svn joined, PZt joined, jiing joined, agentzh joined, jfredett_ joined, LCamel joined, s1n joined, cotto_home joined, nothingmuch joined, krunen joined, perlbot joined, ingy joined, Gothmog_ joined, audreyt joined, speckbot joined, StephenPollei joined, p6eval joined, orafu joined, felipe joined, tcliou joined, meteorjay joined 13:24 qwr joined 13:26 Lorn joined
masak progress++ 13:48
ahmadz hi 13:51
masak ahmadz: hello. 13:52
pmurias_ ahmadz: hi
ahmadz masak: raduko is part of parrot svn right?
pmurias_: hello
masak ahmadz: yes, it is.
but the rakudo part of svn commits is reported here too 13:53
ahmadz i noticed
so raduko passes t/spec in pugs or parrot svn? 13:55
masak t/spec resides in Pugs svn
when you run 'make spectest', it's imported/updated locally
qwr wonders whether you consistent mispelling or is raduko some weird thing I don't know... 13:56
s/you/you are/
ahmadz qwr: sorry for that 13:57
masak qwr: I didn't see it until now. :)
qwr heh, ok ;)
masak we could name a Perl 6 project raduko and see what happens. and perhaps rukado, rokadu, rodaku and radoku, too. 13:58
we clearly haven't filled the space of names yet. 13:59
pmurias_ naming a Python project raduko and seeing what happens would be even more fun 14:03
masak yes, that's even better
ahmadz interesting 14:04
masak the name 'Radoku' sounds like it could involve numbers in a 9x9 grid somehow
ahmadz radoku ~ sudoku 14:06
pmurias_ sudoku--
masak pmurias_: I think I've gotten over my distaste for Sudoku. it doesn't mean I'm any more interested, I just don't care much either way any more. the masses will always need some kind of opium, even if it consists of filling in numbers in predefined ways. 14:09
who knows, such activities might even stave off dementia for some folks 14:10
moritz_ pmurias_: is the interface simply 'pugs -Bm0ld filename'? 14:12
masak moritz_: I'd make 'mold' and 'm0ld' synonyms if I were you, to avoid awkward questions :) 14:13
14:13 jhorwitz joined
moritz_ masak: not my choice, tell pmurias_ ;) 14:13
masak pmurias_: I'd make 'mold' and 'm0ld' synonyms if I were you, to avoid awkward questions :)
pmurias_ moritz_: yes 14:14
moritz_: pugs needs compiling with ./Setup configure --user --flags=SMOP;./Setup build and smop needs to be build with make 14:15
pmurias hates the _ suffix ;) 14:16
masak: maybe a smop synonym? 14:17
moritz_ pmurias: I'll probably get to it later 14:18
pmurias moritz_: i'm still fighting strange bugs 14:19
masak pmurias: aye
pmurias maybe symbolic references in C with dlopen(NULL,RTLD_LAZY) are a bit too magical... 14:26
14:30 funktio joined 14:33 jan_ joined
moritz_ if you ask yourself where yesterday night's leap in rakudo's passed test count came from... 14:51
I wrote a new tool that helps to better identify which tests mostly pass
Tene How many passing tests are there now? 14:52
moritz_ 3779
Tene Nice.
moritz++
moritz_ as opposed to 3434 the day before
PerlJam for some reason I am reminded of The Princess Bride and the hero being "mostly" dead. 14:57
14:57 cjfields joined
moritz_ anyway, I'll test that thing a bit more, and then commit as a replacement for tools/update_passing_test_data.pl 14:58
14:59 kane_ joined 15:15 hudnix_ joined
pasteling "spinclad" at 209.6.140.232 pasted "masak: proper credit for 'every day christmas'" (25 lines, 2.2K) at sial.org/pbot/32323 15:16
moritz_ spinclad++ # "(i asked purl if i could quote her, she had no objection)" 15:18
15:19 rindolf joined, mncharity joined 15:20 elmex joined 15:24 hercynium joined 15:54 justatheory joined
pmichaud I think that the "every day christmas" quote actually comes from audreyt 15:55
[particle] yes, may need to search logs for "xmas" 15:56
pmichaud I think I first heard about it at yapc 2005 15:57
might've been yapc 2006
[particle] toronto? sounds familiar 15:58
16:06 Exodist joined 16:15 clintongormley1 joined 16:16 pmurias joined
pmurias mncharity: hi 16:19
moritz_ pmurias: smop/m0ld seems to depend on autobox, but not probing for it 16:23
or autobox::Core 16:24
pmurias sm0p more likely m0ld is in haskell
moritz_ ok, smop then ;)
what a colourful build process ;) 16:25
pasteling "moritz_" at 89.13.226.127 pasted "smop build failure (for pmurias/ruoso)" (13 lines, 781B) at sial.org/pbot/32324 16:26
pmurias moritz_: doesn't happen here everything is svn up'd and unmodified? 16:29
moritz_ pmurias: "yes" to both 16:30
when I started the build pugs wasn't built with m0ld support 16:31
is that a problem?
pmurias shouldn't be
could you nopaste the build/test/33_pugs_simple.m0ld 16:32
pasteling "moritz_" at 89.13.226.127 pasted "build/test/33_pugs_simple.m0ld (for pmurias)" (1 line, 2.6K) at sial.org/pbot/32325
pmurias moritz_: looks like you have an old pugs 16:33
moritz_ pmurias: I did an 'svn up', and then the ./Setup incantation you gave me earlier 16:34
should I try a 'make clean' first?
pmurias cp dist/build/pugs/pugs pugs 16:35
sorry, my fault
moritz_ ok, arrived at 100% 16:36
pugs_svn r22337 | moritz++ | [evalbot] add m0ld support, remove yap6 16:39
moritz_ evalbot control restart
16:39 p6eval joined
moritz_ pugs: say "sanity check" 16:39
p6eval pugs: OUTPUT[sanity checkā¤]
moritz_ m0ld: say "hi"
p6eval m0ld: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
moritz_ pmurias: should that work right now? 16:41
pmurias in a minute or too
[particle] m0ld: 1.say 16:42
p6eval m0ld: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
[particle] m0ld: 1 16:43
p6eval m0ld: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
[particle] explores the limits of m0ld :(
pugs_svn r22338 | pmurias++ | [pugs] evaling code in the embedded smop works 16:50
pmurias moritz_: could you rebuild pugs with ./Setup configure --user --flags=SMOP;./Setup build;cp dist/build/pugs/pugs pugs
moritz_ pmurias: that's pretty much what my build script does... testing it now, and if it works, I'll make a cron job out of it 16:52
m0ld: say "hi"
p6eval m0ld: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
pmurias that error indicates smop support is not build in
moritz_ tries a 'make clean' 16:53
pmurias and m0ld: should be propably be called smop: as rakudo: is not called pir: 16:56
moritz_ now that's easy to do ;) 16:57
pugs_svn r22339 | moritz++ | [evalbot] s/m0ld/smop/
moritz_ evalbot control restart
16:57 p6eval joined
pugs_svn r22340 | pmurias++ | [pugs] a better error message if smop embedding is not configured 16:58
pmurias smop: $*OUT.print("Hello\n")
p6eval smop: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
pmurias evalbot control restart
moritz_ pmurias: rebuild is not yet completed
16:58 p6eval joined
pmurias smop: $*OUT.print("Hello\n") 16:58
p6eval smop: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
moritz_ and evalbot doesn't need to be restarted when the implementations change 16:59
pmurias good
moritz_ smop: $*OUT.print("Hello\n") 17:00
p6eval smop: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
pmurias you don't run perl Makefile.pl;make right? 17:01
17:01 TJCRI joined
pmurias smop: $*OUT.print("Hello\n") 17:01
p6eval smop: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
moritz_ no, I run ./Setup --user --flags=SMOP
and then ./Setup build
pmurias it's ./Setup configure --user --flags=SMOP
moritz_ erm, yes 17:02
sorry, didn't copy and paste
17:02 eternaleye joined
pasteling "moritz_" at 89.13.226.127 pasted "pugs build script" (12 lines, 188B) at sial.org/pbot/32326 17:02
pmurias you should make smop first 17:04
smop: $*OUT.print("Hello\n")
p6eval smop: OUTPUT[pugs: user error (Cannot evaluate in M0ld)ā¤ā¤]
moritz_ ok, trying again 17:05
pmurias it shouldn't matter, the pugs in the evalbot isn't HEAD btw
moritz_ pugs: say $?PUGS_VERSION 17:06
p6eval pugs: OUTPUT[Perl6 User's Golfing System, version 6.2.13.11, July 31, 2008 (r20996)ā¤]
moritz_ uhm.
that explaiins a lot
it executes the wrong pugs
sorry for the mess
17:07 kanru joined
moritz_ but why? 17:08
dist/build/pugs/pugs -e 'say $?PUGS_VERSION' also says r20996 17:09
moritz_ doesn't understand what's going on
pmurias & 17:11
17:12 masak joined
moritz_ computers-- 17:12
[particle] humans++ 17:13
moritz_ don't DWIM
humans-- # don't teach the computers how to DWIM, at least not good enough
[particle] computers++ # do exactly what you tell them to
moritz_ ..except when they don't ;-) 17:14
masak I don't believe that more DWIM is always better. and IRC bots have convinced me that narrow AI rocks. 17:15
except for purl, a very obnoxious bot
moritz_ ;)
[particle] <purl>i know you are, but what am i?</purl> 17:17
17:20 ilogger2 joined
mncharity howdy pmurias, how goes? 17:20
pmurias fine, i'm putting the pugs smop backend into the evalbot 17:21
moritz_ I just tried on a different machine 17:22
pugs_svn r22341 | putter++ | [elf] Finished elf_h fork. Tweaked IR. Updated test results. 17:23
moritz_ the revision number didn't get updated on rebuild
mncharity pmurias: neat.
17:23 zamolxes joined
pmurias smop: $*OUT.print("hello\n") 17:24
p6eval smop: OUTPUT[smop embedding is disabled use ./Setup configure --user --flags=SMOPā¤]
moritz_ that's what I get on a different machine as well 17:25
does smop need to be in $PATH?
pmurias no, smop is staticly linked in
mncharity re neat, pity it isn't elf. ;) any feedback? went with the more working parser? 17:26
17:26 ruoso joined
pmurias mncharity: went with the more working ast 17:26
mncharity more working in what way? the infix:<,> you mentioned? anything else? 17:27
pmurias ruoso: hi
ruoso hi pmurias
lambdabot ruoso: You have 2 new messages. '/msg lambdabot @messages' to read them.
pmurias mncharity: looking...
mncharity no hurry. but would definitely like to know at some point.
just to make absolutely sure you know, you realize you are not going to be getting oo declarations out of the old pugs parse, right? 17:29
pmurias pugs: class Foo {has $.foo;};my $foo = Foo.new(foo=>1);say $foo.foo; 17:30
p6eval pugs: OUTPUT[1ā¤]
pmurias mncharity: pugs seems to parse oo declarations 17:31
mncharity yes, but that's not what you are using pugs for (unless I've badly misunderstood). take a look at your pil output. 17:32
ruoso smop: $*OUT.print("Hello World!\n") 17:33
p6eval smop: OUTPUT[smop embedding is disabled use ./Setup configure --user --flags=SMOPā¤]
mncharity there's a reason we've been stuck on exactly this for a couple of years. not just "no one got around to doing a backend". :)
ruoso ahhh
pmurias mncharity: pil didn't have my declarations which is much more serious, but i hacked them in 17:34
ruoso . o O ( if pmurias has a declaration I want one on my own ;) ;) ;) )
mncharity lol 17:35
pmurias ruoso: you can have our declarations
ruoso heh...
mncharity hacked them in?!? do please elaborate.
oh, "my" decarations. ok. nm. but have you seen the pil for class declarations? 17:36
pmurias the typical pugs run is "source code" -> AST 17:37
when you add a custom backend it's "source code" -> AST -> PIL1 -> "something else"
everything pugs can run it has in the AST 17:38
mncharity (I have to go. sorry. back laterish)
pmurias and there's nothing special about PIL1 17:39
mncharity: i'll propably switch to elf if audreyt doesn't go back to hacking on pugs 17:40
ruoso pmurias++ # pugs -BM0ld works here :) 17:41
moritz_, for some reason it only started working after I rebuild SMOP after building pugs for the first time... (or something like that) 17:42
masak will we steal qualified imports from Haskell into Perl 6? :)
ruoso but it does work now :)
moritz_ masak: I think we did already
masak moritz_: oh, good.
moritz_ S11 or S10, I alway forget which one covers what 17:43
masak oki
moritz_ ruoso: it feels like rebuilt both pugs and smop 10 times already :(
ruoso did you saw " Compiling M0ld.AST " at any of those times? 17:44
moritz_ dunno
ruoso moritz_, change the build script to build SMOP before pugs 17:46
moritz_ there seemss to be no 'make clean' for smop - what do you use iinstead?
ruoso rm -rf build
ruoso :) it's nice because it's already sanely looking for variables in the lexical scope, just as expected... Pugs+SMOP seems to be a very interesting pair... 17:51
moritz_ tries to remove ~/.cabal and ~/.ghc and then tries a last time 17:52
ruoso moritz_, are you building smop before trying to build pugs?
moritz_ ruoso: yes 17:53
ruoso pmurias, the reason for using static linking is just to avoid LD_LIBRARY_PATH needing to be set? 17:56
moritz_ no luck again 18:02
./pugs -V |grep -i smop
no output
ruoso smop: hell0o 18:04
p6eval smop: OUTPUT[smop embedding is disabled use ./Setup configure --user --flags=SMOPā¤]
ruoso :( 18:05
moritz_, do you have the buildlog?
moritz_ ruoso: no, but I can try again... 18:06
ruoso: do you need pugs build log, or both?
18:06 pmurias_ joined
ruoso are you using that script you pasted above? 18:06
moritz_ yes 18:07
18:07 jferrero joined
moritz_ but I changed it to build smop first 18:07
ruoso right... so the log is for that script...
which involves both pugs build and smop build
right?
moritz_ right
pmurias_ ruoso: re static linking yes, it's a one word change
ruoso pmurias_, right... I think it'll probably be easier later to have it as dynamic... to avoid having to rebuild pugs every time 18:08
moritz_ ruoso: moritz.faui2k3.org/tmp/pugs-build-log 18:09
pmurias_ moritz_: cp Pugs.cabal.in Pugs.cabal 18:10
moritz_ pmurias_: and then?
pmurias_ ./Setup configure --user --flags=SMOP and then ./Setup build 18:11
moritz_ [14 of 93] Compiling M0ld.AST
pmurias_: do I have to do that copy step on each build? 18:12
18:13 justatheory joined
moritz_ smop: $*OUT.print: "foo" 18:13
p6eval smop: OUTPUT[foo]
ruoso :) :) :): ): ): ):)
moritz_ indeed
smop: say "foo"
p6eval smop: OUTPUT[no variable &say in the current scopeā¤] 18:14
pmurias_ :(
moritz_: you don't have to but you propably should
ruoso "no variable &say" is the expected error :) 18:15
pmurias_ as we don't use perl Makefile.PL;make we have to do what they do
moritz_ or tweak Makefile.PL to enable smop embedding ;) 18:16
pugs_svn r22342 | pmurias++ | [pugs] -Bm0ld supports integers
18:16 zamolxes left
pmurias_ moritz_: yes 18:17
ruoso that's probably better... since I can't make it work on my machine anymore... :) 18:18
pmurias_ ruoso: what's the error?
ruoso pmurias_, it simply doesn't get smop 18:19
it throws me the "no embedded smop" error
but when I change Makefile.PL it works.. 18:20
pugs_svn r22343 | azawawi++ | [pugs] Added a solution to "Cannot install zlib: 256" after 'perl Makefile.PL'
r22343 | azawawi++ | [pugs] Separated problems with line separators
ruoso pmurias_, we probably need to take the tests out of the default compile target
since pugs depends on smop, and the smop tests depend on pugs
and the cool thing is that pugs and smop are getting together really nice... 18:22
producing the expected errors where expected...
like...
smop: $*OUT("no postcircumfix:( ) at this variable") 18:23
p6eval smop: OUTPUT[unknown method "postcircumfix:( )" at message line 55 file /home/evalenv/pugs/v6/smop/build/src/smop_s1p_io.cā¤]
ruoso smop: $*FOO = 1; $*OUT.print($*FOO); 18:24
p6eval smop: OUTPUT[no variable $*FOO in the current scopeā¤]
ruoso hmm... that was not expected...
pmurias_ that's actually wrong
moritz_ why?
ruoso because $*FOO is global, not a lexical
moritz_ are global variables not subject to strict?
pmurias_ no
ruoso that's what makes them global ;)
and undesirable ;)
it shouldn't even be looking in the lexical scope... 18:25
pmurias_ globals are a low priority
could you commit your change to Makefile.PL (propably conditional with $ENV{PUGS_EMBED} =~ /\bsmop\b/) 18:26
18:26 pmurias_ is now known as pmurias
pmurias smop: $*OUT.print(1,"\n") 18:27
p6eval smop: OUTPUT[1ā¤]
pugs_svn r22344 | pmurias++ | [pugs/smop] changed $*OUT to $OUT as $*OUT is a global not a lexical 18:30
r22345 | pmurias++ | [smop] removed test 33 from the default test target 18:39
18:42 TimToady left, TimToady joined
pugs_svn r22346 | ruoso++ | [pugs] add --flags=SMOP if $ENV{PUGS_EMBED} =~ /\bsmop\b/i 18:46
18:47 justatheory left 18:52 japhb joined
ruoso pmurias, for some reason, pugs is trying to lookup itself for global variables 18:52
smop: $FOO 18:53
p6eval smop: OUTPUT[*** ā¤ Unexpected end of inputā¤ expecting "::"ā¤ Variable "$FOO" requires predeclaration or explicit package nameā¤ at /tmp/wBNnIL4j9u line 1, column 5ā¤]
ruoso smop: $*OUT.print("Hello")
p6eval smop: OUTPUT[no variable $*OUT in the current scopeā¤]
ruoso smop: $OUT.print("Hello")
p6eval smop: OUTPUT[no variable $*OUT in the current scopeā¤]
18:54 justatheory joined
ruoso it seems that pugs is trying to be too smart 18:55
pmurias smtms: $OUT.print("hello") 18:56
sorry
smop: $OUT.print("Hello here\n") 18:57
p6eval smop: OUTPUT[no variable $*OUT in the current scopeā¤]
pmurias ruoso: pugs is running no strict
ruoso pmurias, but it shouldn't be doing that anyway... 18:58
should it?
pmurias no strict is the default for one liners 18:59
ruoso sure... but does "no strict" means translating $OUT to $*OUT?
pmurias why not? 19:00
ruoso I'd expect $OUT to create a new variable...
specially because you don't start in package *
you start in package Main
so at most it would create Main::$Out
but I don't see how it would get to $*OUT 19:01
pmurias maybe no strict falls back to globals not to package variables
19:01 apeiron_ joined
ruoso hmm... that would be strange... 19:02
pmurias no strict doesn't make much sense
19:02 justatheory left 19:03 apeiron_ is now known as apeiron
ruoso the specs only talk about when strict *is* in effect... 19:03
I can't find a reference to 'no strict'
pmurias falling back to a global is the least strict option 19:04
ruoso pmurias, being global and being in the package * are two different things 19:05
pmurias don't think so
ruoso global is about visibility, not about where it is
pmurias S10:58 19:06
ruoso but packages are, by default, our 19:07
which means that they're global
even if they are not *
pmurias no they aren't you can have versioned packages
ruoso pmurias, when the parser starts, it's in the package *, so package Foo at the beggining of a file, means *Foo 19:08
the same way, if there's no package declaration, the runtime puts you into *Main
the most logical thing would be for $FOO to be *Main::$FOO 19:09
not $*FOO
pugs_svn r22347 | masak++ | [ord_and_chr.t] added tests for multi-arg variants of ord and chr
19:11 abra left
pmurias ruoso: imagine having version 0.1 and 0.2 of a versioned *global* package at once 19:11
19:11 abra joined
ruoso pmurias, being loaded at the same time? 19:11
you have two alternatives... 19:12
the first would be that this is not possible...
the second would imply that each versioned package registers itself globally with fully-versioned-name *Foo::0.1 and *Foo::0.2
and Foo is bound to each place that "use Foo" 19:13
but that means $*Foo::bar is undetermined
although $Foo::bar in a place that use'd Foo will point to the correct version... 19:14
pmurias the third option is that the spec is inconsitent
* inconsistent
ruoso pmurias, the spec tries very hard to make globals unpleasant :) 19:15
but the fact is... 19:16
package Foo; at the start of a file means creating a global package that is stored as *Foo 19:17
and unless you 'use Foo' or 'require Foo', you can only access it as *Foo... 19:18
'use Foo' or 'require Foo' will create a local bind of that package as "Foo" in the current lexical scope
which will allow you to use Foo.new()
perl -MFoo will probably add Foo to the prelude scope... 19:19
so that it becomes omnipresent...
pmurias ruoso: i don't think it's the intention to make the globals more unpleasant then they already are by they very nature
19:19 cjfields joined 19:20 cjfields_ joined
pmurias TimToady: does package Foo at the top create a global *Foo package? if so why? wouldn't that screw up versioning? 19:20
ruoso pmurias, I'm not sure current versioning schema provides loading two different versions of a library at the same time... 19:21
19:21 ChanServ sets mode: +o diakopter, diakopter sets mode: +o TimToady, diakopter sets mode: -o diakopter
pmurias ruoso: if they are purly lexical you can have as many as you want provided they are used from seperate lexical scopes 19:22
19:22 sri_work_ joined
pmurias and i think that's more important then builting support for monkey patching 19:23
ruoso "A bare package declarator declares an our package within the current package"
All files start out being parsed in the * package, but switch to some other package scope depending on the first declaration 19:24
pmurias ruoso: i am aware what the spec says i just thinks it's a bug
ruoso pmurias, if you take a look at S11, you'll see that package Foo; is an incomplete name 19:25
the actual name of the package should include the version
pmurias it's not just that 19:26
ruoso so it looks like *Foo:ver<0.1>:auth<DRUOSO>
and 'use Foo' creates a local bind of "Foo" pointing to that package
pmurias it's wrong to be able to access Foo::bar just because something somewhere loaded the Foo package
ruoso not Foo::bar... 19:27
but *Foo:ver<0.1>:auth<DRUOSO>::bar
and if two pieces of code "use Foo", they will point to the same package 19:28
and Foo::bar in both codes will point to the same var
pmurias still wrong 19:29
ruoso well.. the package needs to be shared in the interpreter...
it's just a matter of having a explicit way or a hackish way of accessing the shared package
a package is "our" by default... 19:30
pmurias if we want to design premature optimalisation in we can have a native ptr type
ruoso hm? what does it have to do with that?
pmurias what's the point of a use Foo in 2 places using the same Foo? 19:31
ruoso perhaps Foo points to a package variable that should be shared? 19:32
like... subroutines?
pmurias so it would be an explicit *Foo
subroutines shouldn't be shared
we are not the monkey patching people
ruoso well... 'use Foo' creates a local bind to "*Foo" as "Foo"
actually... "use Foo" creates a local bind to "wherever_the_package_is_stored" as "Foo" 19:33
pmurias according to the spec which i belive to be severily wrong here 19:34
* severly
masak pmurias: 'severely', but who cares? :) 19:35
ruoso pmurias, for "class Foo is also {...}" to work at a distance (as expected) it needs to be that way 19:36
pmurias ruoso: it add stuff to the lexical Foo 19:37
ruoso pmurias, as well as adding a subroutine to an existing package...
pmurias, and the lexical Foo points to the shared Foo
pmurias that's monkey patching
use should use use Monkey::Patching to do that 19:38
ruoso pmurias, that's something Perl has always supported, and Perl 6 doesn't mention not supporting it anymore...
pmurias searches for chromatics "why monkey patching is stupid: post 19:39
PerlJam just because something is stupid doesn't mean that perl 6 is going to prohibit it.
ruoso mostly because monkey patching is the most effective way of patching modules you don't maintain... 19:40
19:40 cjfields left
PerlJam "goto considered harmful", but we still have it anyway 19:40
moritz_ not prohibiting is not the same as using it as an essential language feature
ruoso it's not an essential language features...
19:41 cjfields_ left
ruoso if you use it without doing monkey patching... it won't be monkey patching... 19:41
but the Packages do need to be shared...
pmurias PerlJam: my point it that the monkey patching package sharing shouldn't be the default 19:42
PerlJam pmurias: you mean the ability to do so?
ruoso pmurias, you mean cloning the Package at every 'use'?
pmurias ruoso: yes
ruoso ouch...
that hurts...
19:43 abra left
moritz_ doesn't sound too efficient 19:43
pmurias we are not C++
ruoso pmurias, you know that makes package variables to behave in a very unexpected way, don't you?
like... 19:44
consider a file with: module Foo { our $bar = 0; sub baz { return $bar++ } }; 19:45
now consider that you have a script... that use Bla; and use Ble;
both Bla and Ble use Foo
and they will then point to different packages...
and point to different values of $bar... 19:46
that's very unexpected...
PerlJam ruoso: Hmm. I think pmurias' way could work if on clone the original package were the "proto-package" for all of the clones and it held the singleton instances of the package variables, but subroutines were all their own. (if you get my meaning) 19:47
moritz_ how is that different from aliasing then? 19:48
PerlJam It's more like the anoymous class you get when you compose traits into an object at runtime
pmurias ruoso: imagine what happends when Bla uses Foo >= 0.1 and Ble uses Foo 0.1
PerlJam s/anoy/anony/
pmurias * happens 19:49
ruoso PerlJam, that's also unexpected... since subroutines are just variables...
pmurias ruoso: you can always use module Foo { sub baz { return $*Foo::bar++ } }
moritz_ pmurias: that's not very DWIMmy 19:50
ruoso pmurias, not DWIMmy at all...
pmurias things should be correct not DWIMy 19:51
moritz_ things should be both corret and DWIMy
ruoso I mean... we could abolish globals entirely...
but I don't think that's the idea 19:52
pmurias globals should only be used when you explicitly use them
and if take efficiency in mind the way i'm proposing is faster 19:55
s/if/you/
ruoso well... it's up to TimToady now 20:05
20:11 justatheory joined
ruoso pmurias, btw... "our $bar" is kinda explicit use of globals... 20:11
TimToady but the current package is lexically scoped 20:15
and I suspect a Foo::bar without an explicit "use Foo" would pick the same Foo that a bare "use Foo" would do 20:16
ruoso TimToady, but the package is our by default... 20:17
which ends up being the same...
TimToady the meaning of package names is lexically scoped
ruoso right... we agreed to this point...
the question is whether they point to the same thing on different places.. 20:18
i.e. the Bla and Ble example I gave above
TimToady they point to different places. if two packages want to share a global variable, they need a third package that doesn't change version so often 20:19
same for an exclusive resource
such as a database handle
pmurias TimToady: what i'm proposing is that packages aren't global unless prefixed with a * 20:20
TimToady "Foo" is ever only a local alias to the long name
pmurias TimToady: so does package Foo {...} create a GLOBAL::Foo? 20:22
ruoso right... but what does get shared?
TimToady on phone...
ruoso . o O ( GLOBAL::Foo on phone... hmmm... ;) ) 20:23
pmurias ;
)
ruoso more importantly... package Foo {...} as the first declaration on a file creates GLOBAL::Foo? 20:25
TimToady package Foo is short for "our package Foo" which creates it in the current package 20:26
ruoso which, as the first declaration, is *
TimToady which might actually be Main at the start of the file
so it's possible we only have *Main
and that contains the others 20:27
ruoso er...
the spec tells about both * and *Main
pmurias er...
TimToady well, the spec could always be wrong :)
pmurias hopes it is
ruoso pmurias, that only change where it's stored...
pmurias, not the fact that they are stored as global and shared... 20:28
pmurias TimToady: why doesn't the file start in a lexical package?
ruoso have run :(
TimToady there are no lexical packages
pmurias ?
ruoso have *to* run, actually... 20:29
TimToady or they all are, in another sense
anyway, I have to go too...
ruoso later &
pmurias S10:05
20:29 ruoso left
pmurias TimToady: S10:55 20:30
20:36 donaldh joined
pugs_svn r22348 | azawawi++ | [pugs] Fixed Use of uninitialized value $ENV{"PUGS_EMBED"} in pattern match (m//) 20:39
20:44 timbunce joined, timbunce left 20:49 donaldh left
pmurias moritz_: do you think "module *Foo { our $bar = 0; sub baz { return $bar++ } };" is not DWIMmy enough 20:50
20:54 ispy_ joined, ahmadz_ joined 20:55 donaldh joined
moritz_ pmurias: can you explain in two sentences to the average perl programmer why you need that * before the Foo? 20:55
20:56 donaldh left 20:59 lisppaste3 joined, donaldh joined
pmurias so all of you package variables are shared by everything that uses your module 21:00
i don't consider the average programmer to understand less than i do 21:01
moritz_ he does
pmurias he shouldn't be changing the variables in the modules i'm using then ;) 21:06
21:10 zamolxes joined 21:14 pmurias left 21:19 ahmadz left 21:20 donaldh left
pugs_svn r22349 | azawawi++ | [pugs] Removed warning: defaultUserHooks in Setup script is deprecated. 21:23
21:43 iblechbot left 21:45 Jedai left 21:56 Jedai joined
rakudo_svn r31390 | moritz++ | [rakudo] complete rewrite of tools/update_passing_test_data.pl, now the 22:01
r31390 | moritz++ | output is much more informative (but less copy&paste frindly)
moritz_ std: {:a<1>, :b(2)} <a b c> 22:08
p6eval std 22349: OUTPUT[parse failureā¤]
moritz_ std: (1 | 3)<3 22:09
p6eval std 22349: OUTPUT[parse failureā¤]
moritz_ std: print < 3 22:11
p6eval std 22349: OUTPUT[parsedā¤]
moritz_ std: reverse<1 2 3> 22:12
22:12 justatheory left
p6eval std 22349: OUTPUT[parsedā¤] 22:12
22:13 justatheory joined
pugs_svn r22350 | moritz++ | [t] moved listquote.t to spec/, deleted bogus tests, and rewrote many others 22:16
r22350 | moritz++ | to use eval_dies_ok.
r22350 | moritz++ | Also updated TASKS.
r22351 | azawawi++ | [pugs] Reverted Setup.lhs from previous fix to clear warning 22:17
ahmadz_ moritz: Cabal really complicates things 22:18
22:26 apeiron_ joined
pugs_svn r22352 | azawawi++ | [pugs] svn ignore on *.hi, Setup, config for third-party 22:30
moritz_ azawawi++ # pugs build system
22:34 apeiron left
pugs_svn r22353 | azawawi++ | set svn ignore on remaining ext/* temp files 22:35
r22354 | azawawi++ | [pugs] Last of the svn ignores 22:39
r22355 | moritz++ | [t/spec] fixed syntax errors in listquote.t, moritz-- 22:42
r22356 | moritz++ | [t/spec] fudged listquote.t for rakudo, and remark on testing 22:45
22:45 apeiron_ is now known as apeiron 22:49 justatheory left
rakudo_svn r31391 | moritz++ | [rakudo] added listquote.t to spectest_regression, and brought back into 22:52
r31391 | moritz++ | alphabetical order
22:54 Guest70230 joined
pugs_svn r22357 | moritz++ | [t/spec] fudged undef.t for rakudo 23:07
r22358 | moritz++ | [t/TASKS] undef.t is now fudged, remove from the list 23:08
rakudo_svn r31392 | moritz++ | [rakudo] added undef.t to spectest_regression.data 23:13
r31392 | moritz++ | (funnily it has less undef warnings than int.t)
23:30 justatheory joined 23:33 justatheory left 23:44 ispy_ left 23:46 felipe joined 23:48 cjfields joined 23:49 ruoso joined
ruoso @tell pmurias, 'package *Foo' doesn't seem to make much sense, since 'package Foo' is already 'our package Foo' which means that it creates a lexical alias "Foo" for the package with the same name which is stored as a member of the package we're at. Considering the file starts to parse in package *, the package is seen as just 'Foo' inside this lexical scope and by anyone who "use" or "require" Foo... 23:52
lambdabot Consider it noted.
23:52 sri_work_ left
ruoso @tell pmurias, but is globally registered as *Foo. What you seem to be talking about is another type of scope visibility... something like... "my package Foo is export {...}" 23:54
lambdabot Consider it noted.
ruoso @tell pmurias, but still, this only refers on which names are bound to the package, the package instance is still the same in all cases, the only difference is the way to access it. 23:56
lambdabot Consider it noted.
23:59 meppl joined