Parrot 1.0 Released | parrot.org | Thanks to everyone who helped get 1.0 out the door!
Set by moderator on 18 March 2009.
00:09 AndyA joined 00:11 Theory joined 00:17 zpmorgan joined 00:19 TiMBuS joined 00:24 eternaleye joined 00:57 eternaleye joined
dalek rrot: r37690 | cotto++ | trunk/DEPRECATED.pod:
[DEPRECATED] add notice about parrot_new_pmc_hash
00:59
01:25 alvar joined 02:14 Theory joined 02:36 rdice joined 02:53 Theory joined 03:16 msmatsko joined 03:18 Theory joined 03:20 allison joined
dalek rrot: r37691 | allison++ | trunk/ports/debian/libparrot.install.in:
[debian] Shift the libparrot install list to a template, so version can
03:23
rrot: r37692 | allison++ | trunk/ports/debian/libparrot.install.in:
[debian] Specify the version for libparrot in the install list.
03:27
rrot: r37693 | allison++ | trunk/ports/debian/rules:
[debian] Manually cleaning installable_pbc_to_exe, since it wasn't

the patch.
03:33
purl We don't need no stinking patch!
rrot: r37694 | allison++ | trunk/ports/debian/control.in:
[debian] Fixing notation in dependency versions, fixing conflict between
03:40
rrot: r37695 | allison++ | trunk/tools/dev/pbc_to_exe.pir:
[cage] Changing documentation to the 'man' standard header, because
03:43
rrot: r37696 | allison++ | trunk/ports/debian/rules:
[debian] Add libparrot.install template to generated list.
03:47
03:47 janus joined 04:22 tetragon joined
dalek rrot: r37697 | allison++ | trunk/ports/debian/parrot-devel.install.in:
[debian] Pulling a few more devel files that were necessary for Ubuntu
04:24
rrot: r37698 | allison++ | trunk/ports/debian/parrot.install.in:
[debian] Pulling in additional library needed for building Pynie from
04:27
davidfetter seen allison 04:28
purl allison was last seen on #parrot 12 hours, 27 minutes and 3 seconds ago, saying: Coke: aye, so that's what needs to change
allison hai davidfetter 04:29
davidfetter hai
hope your flight flew
allison mmm... yes, it was flighty 04:30
davidfetter beats the alternatives
so you mentioned some sandbox code... 04:31
allison yes, a very rough prototype
davidfetter is it in a state where you're ready to have others jump to silly conclusions about how to use it?
04:31 amoc joined
allison mmmmm... not really, but that's one of my milestones for this month so won't be more than a week or two before it is ready 04:32
davidfetter please don't release it (or anything else) next wednesday
allison what's next wednesday?
purl next wednesday is the Mtl Mongers meeting, RIGHT?!
davidfetter it's very early in april
*very* early
allison oooh, yes :)
hmmm... I think I'll release a new language ;) 04:33
davidfetter heh
04:33 amoc joined
dalek rrot: r37699 | cotto++ | trunk/config/gen/makefiles/root.in:
[config] add src/string to make cover results, alphabetize dirs
04:54
05:15 tuxdna joined
dalek rrot: r37700 | allison++ | trunk/ports/debian (3 files):
[debian] Removing pbc_to_exe from packages due to hardcoded path.
05:30
rrot: r37701 | fperrad++ | trunk/tools/dev/mk_language_shell.pl:
[languages] use a new naming convention for Makefile template :
05:36
05:37 tuxdna joined 05:41 Tene_ joined
dalek rrot: r37702 | allison++ | trunk/ports/debian/changelog:
[debian] Updating changelog before sending a new set of test packages to
05:56
rrot: r37703 | allison++ | trunk/ports/debian/rules:
[debian] Removing manpage installation for package that has no manpages.
05:59
06:12 eternaleye joined 06:54 uniejo joined 06:59 eternaleye joined
dalek rrot: r37704 | cotto++ | trunk/src/string/api.c:
[string] remove a long-obselete comment
07:18
07:56 alvar joined 08:08 bacek joined 08:38 masak joined 08:47 skv joined 08:49 tuxdna joined 08:58 tuxdna joined 08:59 tuxdna left, Santtu joined, tuxdna joined 09:00 amoc joined 09:20 bacek joined 09:22 contingencyplan joined 09:32 Ademan joined 09:49 TiMBuS joined 10:39 dalek joined 11:04 donaldh joined, donaldh left, donaldh joined, donaldh left 11:06 donaldh joined 11:18 amoc joined 11:21 donaldh joined 11:32 elmex joined 12:12 ruoso joined 12:17 McFist joined
dalek rrot: r37705 | jonathan++ | trunk (16 files):
[io] Apply patch from bacek++ to bring socket IO back to Parrot. Seems to largely match up with the I/O PDD, and no tests fail as a result (plus the test it adds passes). This patch also contains my naiive port of the code to Win32, which actually just about runs httpd.pir (an example included in bacek++'s patch), though with a curious browser hang once the complete page has been served. Patch was from TT#496.
12:17
rrot: r37706 | jonathan++ | trunk/compilers (2 files):
Undo two files changed accidentally in the last commit - just some things I had lying around locally that I forgot I'd changed.
12:20
rrot: r37707 | jonathan++ | trunk/PBC_COMPAT:
Need to bump PBC_COMPAT up since new opcodes were added.
12:23
12:34 rg1 joined 12:42 TiMBuS joined
coke_afk jonathan: you in? 13:00
Coke nevermind, commented on ticket. 13:02
13:05 gryphon joined
mikehh parrot r37704 still failing build tests as per TT#489 - all other tests PASS including make fulltest - rakudo (9a84c35) also builds and make test/make spectest PASS 13:06
Coke mikehh: yes. I commented on the ticket.
the tests are, IMO, probably testing something that was true for <1.0
mikehh I am looking at the ticket at the moment 13:07
the tests do NOT delete the /tmp files 13:09
13:10 bkuhn joined
mikehh in the comment before yours - it was stated that if the renumbering was done tests passed but would that be a deprecation? 13:11
Coke the more we renumber, the harder it is to support older bytecode. 13:12
dalek rrot: r37708 | coke++ | trunk/src/ops/io.ops:
fixup typos and cut and apparently cut-n-paste-os
13:13
Coke we've already deprecated the bytecode version by adding ANY opcodes. 13:15
I'm just trying to avoid shuffling the other 1000 opcode numbers.
Infinoid jonathan: Is there some online documentation for the win32 sockets API? (socket, send, recv, etc.) I want to rtfm on win32 socket autoflush characteristics
Coke wishes he had commented on the socket opcodes when they were just in PDD form.
using an opcode to create a PMC when we already have "new" seems a waste. (but then, so does "iter", so what do I know.) 13:16
jonathan Coke: I kinda agree, but the spec was reviewed recently-ish. 13:20
Infinoid: Yes, the MSDN is online.
Infinoid: msdn.microsoft.com/en-us/library/ms...S.85).aspx 13:23
shorten jonathan's url is at xrl.us/bemi6d
Infinoid thanks! 13:32
examples/io/httpd.pir is a nice start but there are some rough edges I want to fix 13:33
jonathan Infinoid: Please do go ahead!
Infinoid one of the more worrisome edges is that the "send" op (much like the corresponding send() function in C) is not guaranteed to write the entire buffer, and its return value needs to be checked 13:34
oh, I see. It does loop after all, it just uses goto instead of while. my mistake 13:35
jonathan I saw the goto and thought "hmm...goto", but trusted that if it's an issue somebody would care and deal with it. :-) 13:36
Infinoid goto isn't an issue. would be nice to check errno for things like ECONNTIMEDOUT though, so it won't spin forever
Infinoid just fixed the 404 stuff (first pir exception I've ever caught!) 13:37
particle you never forget your first one. 13:41
dalek rrot: r37709 | Infinoid++ | trunk/examples/io/httpd.pir:
[examples] Fix the httpd.pir 404 handler.
13:53
Infinoid is it really that simple? I mean... there's no state to clean up after, no explicit exception stack pop or anything?
dalek rrot: r37710 | Infinoid++ | trunk/config/gen/makefiles/root.in:
[io] Add some Makefile dependencies to get make -j working again.
13:56
rrot: r37711 | Infinoid++ | trunk/src/io/socket_unix.c:
[io] Fix the following warning.
13:59
14:05 riffraff joined
dalek rrot: r37712 | coke++ | trunk/t/codingstd/filenames.t:
[t] Delete stale docs.(*)

perfectly good way to tell if a test is TODO'd.
14:19
14:27 davidfetter joined 14:29 pmichaud joined
dalek rrot: r37713 | Infinoid++ | /docs/html/index.html'ļæ½ (1 files):
[examples] Consolidate examples/io/httpd.pir to use a common send_response() sub.
14:36
Coke Infinoid: hashes are easy.
$P1 = new 'Hash'; $P1['404'] = 'File not found'
$S1 = '404'; $S2 = $P1[$S1] 14:37
Infinoid ok. how do you enumerate the keys? 14:39
(that's the part I don't know, and won't have time to look up until later today) 14:40
davidfetter seen gerd 14:41
purl gerd was last seen on #parrot 22 hours, 44 minutes and 57 seconds ago, saying: I have to go home, in the evening I will look in my email, bye
rg infinoid: actually no, you also need to pop_eh in the handler, otherwise it will stay on the stack. 14:42
jonathan Infinoid: my $P2 = iter $P1
erm wtf am I thinking
$P2 = iter $P1 14:43
pmichaud good morning #parrot
jonathan Then just use $S0 = shift $P2 in a loop and if $P2 ... to check if the itrator has more values
pmichaud: OH HAI
14:44 alvar joined
davidfetter mornin', pmichaud :) 14:44
anybody know where gerd hangs out, generally? 14:45
nopaste "pmichaud" at 72.181.176.220 pasted "Canonical iteration of hash" (13 lines) at nopaste.snit.ch/15956
14:46 Theory joined 14:52 Whiteknight joined
Whiteknight jonathan: ping 14:53
Win32 build fails with the new socket function additions
jonathan Whiteknight: pong
Whiteknight: Specifics++
?
Whiteknight I just did an svn up + realclean, and build fails 14:54
jonathan (Since I did the socket port for Win32 and tested it hear...)
*here
OK, which compiler?
purl which compiler is "not the one you're using."
Whiteknight src/io/socket_win32.c: error: too many arguments to function 'inet_addr' 14:56
I'm on strawberry perl here
so i guess mingw32-gcc
jonathan Ah. 14:58
Whiteknight (sorry I'm taking so long to respond, boss keeps looking over my shoulder and I have to pretend to do "real work")
jonathan OK, it was on the MSVC++ compiler I got it going.
Hmm.
I wonder if you'd have better luck under MinGW compiling with the unix version instead of the Windows ones. 14:59
Whiteknight lots and lots of warnings too in the socket_* functions, but none that look like build-breakers
Coke mingw ain't cygwin. 15:01
(warnings) for more fun, run 'make codetest' <broken record>
Whiteknight i can't make codetest, I can't make 15:02
teh buildz r teh failz
dalek kudo: f11ad52 | jnthn++ | (3 files):
Implement START statements (not terms yet). Add S04-closure-traits/start.t to spectest.data.
15:05
shorten dalek's url is at xrl.us/bemjhe
dalek kudo: 87068ef | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 329 files, 7367 passing, 0 failing
shorten dalek's url is at xrl.us/bemjhg
Infinoid codetest does not require a built tree, just a configured one 15:06
jonathan So is MinGW using the Windows headers, just compiling with GCC? 15:07
Infinoid jonathan++ # that iter stuff is exactly what I needed, thanks
yes
Whiteknight oh I'm sorry, I was thinking about "coretest"
jonathan If so, I don't get why the buildz are fail.
(Since presumably inet_addr comes from the Win32 API)
Either that or we're calling it wrong, but MSVC++ doesn't care...
Whiteknight inet_addr probably comes from winsock.h, yes
jonathan Whiteknight: Looking up inet_addr 15:08
Whiteknight let me go through the realclean + update + reconfigure + rebuild dance again. Who knows, maybe the third time is the charm
15:09 Ademan_ joined
jonathan Whiteknight: Eh, so, I think we are calling it wrong. 15:09
And MSVC++ didn't moan about that.
Infinoid (MSVC++)-- # insufficient moaning 15:10
Whiteknight resists the urge to make inappropriate joke at the compiler's expense
15:11 Tene joined
Whiteknight has to go do some work, be back in a snap 15:11
nopaste "jonathan" at 85.216.157.73 pasted "probable fix" (14 lines) at nopaste.snit.ch/15957 15:19
jonathan Whiteknight: When you get a moment, try the above pasted patch.
15:20 donaldh joined
Infinoid I have mingw here, I'll test it if svn ever finishes updating :) 15:29
jonathan Infinoid: OK, great. 15:31
It works on MSVC++ too. And is actually probably correct. ;-)
rg infinoid: did you see my note about needing another pop_eh?
Whiteknight building now
dalek rrot: r37714 | moritz++ | trunk/src/io (2 files):
[cage] clean up some trivial code test failures
15:34
Infinoid rg: Yep, thanks. I've got a patch that fixes that and adds some Hash stuff for http headers, I'll commit once I finish some codetest fixes (which it looks like moritz++ is also working on)
moritz Infinoid: not anymore, just did the trivial ones 15:35
rg infinoid: ok, just making sure you saw it ;) 15:36
15:36 rdice joined
Whiteknight jonathan: that appears to work. Thanks 15:37
jonathan Whiteknight: OK, I will ci. 15:38
Whiteknight well, by "works", I mean it compiles. I'm not doing any socket testing today
15:38 Tene joined
jonathan Whiteknight: Well, compiles is closer to working. ;-) 15:40
Infinoid I'll work on making sure the httpd example works on mingw
Whiteknight close enough for me anyway
jonathan Infinoid: Well, it worked on Win32/MSVC++ as well disregarding the buffering issue (I doubt that this fix was related to that at all). But I just think it would not have used this code path.
dalek rrot: r37715 | jonathan++ | trunk/src/io/socket_win32.c:
[t/spec] Fix a bug in the Win32 sockets layer, which made address resolution not work anywhere (we need tests ;-)), but broke compilation on MinGW. whiteknight++ for reporting.
Infinoid Yeah. The buffering is what I want to get working
(assuming its buffering as opposed to, say, forgetting to close the connection after the response)
moritz jonathan: is there a [t/spec] in parrot? :-) 15:42
mj41 r37705 broke build on mingw32 ... tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk .. src\\io\\socket_win32.c:371: error: too many arguments to function `inet_addr' 15:43
Infinoid the SOCKADDR() macro's "t" arg fails t/codingstd/c_macro_args.t and I don't think its possible to fix it. 15:44
jonathan moritz: Clearly only having the one coffee this morning was a bad idea...
Infinoid mj41: I think r37715 will fix that
jonathan perl6: my $x = True; $x &&= True; say $x; 15:51
rakudo: rakudo: my $x = True; $x &&= False; say $x;
oh, wrong channel
Infinoid what happened to polyglotbot? 15:52
jonathan hmm, good point...not sure
Infinoid ssh: connect to host feather3.perl6.nl port 22: No route to host 15:53
maybe the VM wasn't restarted after feather's reboot yesterday
dalek rrot: r37716 | Infinoid++ | /docs/html/index.html'ļæ½ (1 files):
[examples] Some more examples/io/httpd.pir fixes.

  * Clean up the 404 exception handler. rg++.
15:54
rrot: r37717 | Infinoid++ | trunk/src (4 files):
[cage] Codetest fixes.
15:57
nopaste "Infinoid" at 75.140.33.106 pasted "socket build warnings on mingw32 (r37717)" (46 lines) at nopaste.snit.ch/15958 15:58
dalek kudo: de86e8a | jnthn++ | (2 files):
Make .assuming work on multi-methods. Add the now-passing S06-currying/assuming-and-mmd.t to spectest.data.
shorten dalek's url is at xrl.us/bemjru
dalek kudo: f27c7ea | jnthn++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
shorten dalek's url is at xrl.us/bemjrw
mj41 r37705 mingw32 build error fixed in r37715 ... tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk 16:04
dalek rrot: r37718 | NotFound++ | trunk/examples/io/httpd.pir:
[examples] send "Connection: close" in http header
16:08
Infinoid this server really should be reporting http 1.0, not 1.1 16:09
there we go. new heatsink fan that actually spins, now maybe mingw can complete a build without gcc segfaulting 16:12
Coke 1.1 is haaard. 16:14
(content chunking FTL.)
Infinoid hey, I *like* chunked encoding. 16:15
or maybe I should say I don't like allocating hundreds of megs of slowly-generated cgi content before outputting anything 16:16
but I think I want to implement directory indexes and content-types and maybe forking first 16:18
rg are you sure you want to implement a full-fledged http server in pir? 16:19
16:19 darbelo joined
Infinoid Don't worry, I'm not going to reimplement apache. But network programming is fun :) 16:20
moritz I think it's more fun than fixing parrot coding style tests :-)
Infinoid It's also more fun than moving old release newsposts over from the old parrotcode.org site
rg true, and it's a really good example for socket and io programming. 16:21
so forking (or threading) would probably be good, too.
Infinoid Yes and no. The current incarnation doesn't use select() at all, and probably never will. IRC server in pir, anyone?
NotFound I'd like a parrot_debugger that reads commands from a socket 16:22
Coke (chunked) no, it's wonderful, until you are the one implementing it. =-)
rg heh. too much protocol work :P
Infinoid Coke: true. I've only implemented the client side
which didn't turn out *that* bad
NotFound chunked is not so hard. Just chunk it ;) 16:23
Infinoid feels a libwww-parrot coming on 16:24
NotFound A HTTP::Server module will be nice 16:26
Infinoid CAN HAS HTTP? 16:27
jonathan Infinoid: Hmm. Just tried C:\\Consulting\\parrot\\trunk>parrot examples\\io\\httpd.pir
Infinoid httpd.pir reports "bind failed" under mingw
jonathan And I get bind failed 16:28
Gah.
That worked earlier today. :-|
Infinoid you're using msvc?
jonathan (On MSVC)
Yes.
Infinoid I don't think win32 likes the "localhost" string 16:29
changing that to 0.0.0.0 works here
tuxdna Hi, can anyone see if the patch in trac.parrot.org/parrot/ticket/491 is alright and apply it ?
It is related to using longopts in parrot_debugger.c 16:30
Infinoid jonathan: after tweaking line 110 a bit, seems to work fine here 16:31
jonathan Infinoid: OK.
NotFound tuxdna: I don't see the need to use longopts in the current state of parrot_debugger 16:33
Infinoid the "sockaddr" op is going to have to be changed if we ever want to support anything other than IPv4
tuxdna NotFound: It might be needed later if we have many options to be passed to the debugger. And at present longopts do not cause any bad thing to debugger's performance. 16:35
Infinoid jonathan: do you still get that weird browser hang with msvc? and are you using IE? 16:36
NotFound tuxdna: I try to never add code just because it does not do any bad thing
Coke (longopt) are we using longopt in other parrot apps? 16:37
NotFound Coke: parrot and pbc_disassemble, I think 16:38
Coke my vote is it would be nice to have a standard way of dealing with such things.
jonathan Infinoid: No, it works now!
Infinoid: I had to s/localhost/127.0.0.1/ though
tuxdna longopt is being used in src/pbc_disassemble.c 16:39
jonathan Infinoid: I suspect that maybe something is wrong in the hostname resolution code.
Infinoid Yeah, I'll commit the 127.0.0.1 part in a minute
tuxdna and src/pbc_merge.c
jonathan Well, IMO localhost should work...
Infinoid Yeah, you're probably right
tuxdna also in src/pbc_dump.c 16:40
jonathan Infinoid: Heh, it feels nice and fast too.
Infinoid though... your call to gethostbyname() should have covered localhost 16:41
NotFound Coke: maybe, but will be even nicer to have one that use parrot naming conventions for his exported functions.
jonathan Infinoid: Is it resolving any names though? 16:42
Infinoid: I'm suspsecting that call is maybe being done wrong or something.
Infinoid It resolves them correctly on linux 16:43
I can put in hosts from my local dns setup, and they bind fine 16:44
jonathan Infinoid: I meant, being done wrongly on Win32.
16:45 cotto joined, cotto left, cotto joined
tuxdna NotFound: I think that since longopts is being used in three places in parrot, we can use it in parrot_debugger as well. Or if you feel I may help implementing any other thing in parrot_debugger, then please let me know. 16:45
Infinoid Yeah, took a moment to test that (I didn't have any hostnames set up for the windows box.) It is definitely not resolving hostnames correctly
inet_addr() under linux returns -1 on error, not 0, so I think the condition in get_sockaddr_in() might be wrong 16:47
the analogous condition in the unix version is also a little naĆÆve 16:48
NotFound tuxdna: parrot_debugger is just a quick way to start the internal debugger. I don't care much about it until src/debug.c reaches a more stable and full featured state 16:50
tuxdna NotFound: do you mean that parrot_debugger is just a temporary tool to launch the actual debugger and it might be removed later? 16:52
NotFound tuxdna: the real debugger is src/debug.c and is built into libparrot. Maybe parrot_debugger will be removed some day, maybe not. 16:56
16:56 jhorwitz joined
tuxdna NotFound: I see. 16:56
NotFound You can interact with the debugger without using parrot_debugger, see examples/pir/pirric.pir for an example. 16:57
dalek rrot: r37719 | Infinoid++ | trunk/src/io/socket_win32.c:
[io] Fix sockaddr hostname lookups on win32: inet_addr() returns -1 (255.255.255.255) on failure. This gets "localhost" working for me on mingw, and actual dns entries as well.
16:58
jonathan Infinoid++ # that works for me too :-) 16:59
Infinoid That code will break if you ever have a valid reason to parse a 255.255.255.255 address (for a tunnel netmask or a target address for udp broadcasts, maybe). there's a big fat warning about that on the inet_addr manpage on linux, which basically says don't use it 17:03
but this is still a step in the right direction I think :)
17:04 chromatic joined, mj41_ joined
jonathan Aye. 17:04
dalek kudo: a51a0da | jnthn++ | src/builtins/eval.pir:
Fix importation of modules in nested namespaces.
17:17
shorten dalek's url is at xrl.us/bemj4a
dalek kudo: ce7ff26 | jnthn++ | t/spectest.data:
Add S11-modules/import.t to spectest.data.
shorten dalek's url is at xrl.us/bemj4c
dalek rrot: r37720 | NotFound++ | trunk/src/debug.c:
[debugger] stop using IMCC_warning
17:18
Coke tuxdna: but yes, any improvements to the state of debugging are in general welcome. =-) 17:19
410 RTs left 17:22
NotFound Ah, yes, I don't try to discourage collaboration O:) 17:23
17:32 donaldh left
Infinoid Apparently mingw doesn't define _WIN32, so PIO_OS_WIN32 never gets defined and parrot/io.h doesn't include io_win32.h, resulting in a bunch of warnings. 17:38
jonathan Infinoid: I guess it defines something you can test there, though? 17:40
Infinoid Or something. I'm not sure yet
This might just be something that needs another headerizer run
NotFound __MINGW32_ 17:41
__MINGW32__
17:41 chromatic joined
Infinoid Ok. _WIN32 is there... io_win32.h just doesn't contain the prototypes it should 17:42
jsut there is a picture of allison mid talk in the rotation of the oscon header.
dalek rrot: r37721 | Infinoid++ | trunk/src (2 files):
[cage] Add ARGIN() to some new function arguments.
17:58
rrot: r37722 | Infinoid++ | trunk (4 files):
[cage] Add a headerizer location for socket_win32.c global functions to io_win32.h header. Rerun headerizer.
18:02
Tene pmichaud: I was considering working on context() and caller(), but even if I added the relevant attributes to Code, I'm not sure how I'd set them. Do you have a plan for this?
pmichaud Tene: not yet. I figure we have to get dispatch resolved first. 18:03
Tene hm? howso?
pmichaud let me review the spec. 18:04
Tene perlcabal.org/syn/S06.html#The_cont..._functions
shorten Tene's url is at xrl.us/bemkcc
dalek rrot: r37723 | Infinoid++ | trunk/src/io/socket_win32.c:
[cage] Add ASSERT_ARGS() macros to the win32 socket functions.
18:06
pmichaud Tene: ah. I was thinking more about .want (more) 18:09
The issue with context() is that Parrot contexts aren't PMCs yet.
I don't know if Continuation would have enough information about that, though. Perhaps that would work.
Tene in rakudo, interp['sub';1] gives a Code object. 18:10
18:10 Andy joined
pmichaud I'm a bit confused.... what attributes were you thinking of adding to Code ? 18:12
Coke regarding parrot contexts becoming pmcs - is that still desirable?
pmichaud (and how does this relate to interp['sub';1] ?
Coke: I think it's desirable, yes, unless Continuations give me the same sorts of access
Infinoid jonathan: I'm going to close TT #497, thanks
Tene the spec says that the object returned from context() needs to support a list of methods, but it doesn't specify what class those methods are defined on.
My first guess at what it should return was the block itself. 18:13
My clue for that was that we already know that blocks have a .leave() method, which is mentioned in the list.
search /at least the following/ in S06
pmichaud I don't think it can be the block, because of .my 18:14
Tene Explain?
pmichaud block's don't have .my -- contexts do
*blocks
e.g., recursion
Tene Huh. Okay. 18:15
pmichaud I'm pretty sure the returned object would be something that has a "Context" role or equivalent.
jonathan Infinoid: No, thank *you*! :-)
pmichaud also, blocks don't have a "I'm currently executing file+line" information. Contexts have that. 18:16
Tene nods.
pmichaud so, I'm thinking that whatever implements context() in Rakudo will have to get the information from Parrot's contexts somehow. Since those aren't PMCs, we probably need special support for them. 18:17
I think we need special support anyway, since there's not currently a way to say "get my caller's outer lexical scope" in Parrot.
s/Parrot/PIR/
Tene isn't that interp['outer';1] ? 18:18
pmichaud that's _my_ outer lexical scope.
not my caller's outer lexical scope.
Tene No, my outer is interp['outer'] 18:19
pmichaud okay, interp['outer';1] is my outer's outer then
18:19 barney joined
pmichaud not necessarily my caller's outer 18:19
Tene "<item>"; level ... same for caller <level>
from parrotinterpreter.pmc
Coke Does anyone else have a vote on rt.perl.org/rt3/Ticket/Display.html?id=60642 ? 18:20
pmichaud Tene: I think the docs are misleading there. The code looks pretty straightforward to me that any level given with "outer" ends up searching outer scopes and not caller scopes. 18:23
parrotinterpreter.pmc:455
perhaps I'm reading it wrong.
NotFound Coke: kill it. 18:24
Coke NotFound: please vote on the ticket so I have a partner in crime. =-) 18:25
Tene pmichaud: I think the most significant thing i was needing from rakudo was a way to get whether a block is "inline" or not, re the defenition of caller as: &caller ::= &context.assuming({ !.inline }, 1);
pmichaud Tene: we're not doing inline at all yet. 18:28
at least, I don't think we are.
Tene We're not.
It looked to me that that should be an attribute of something in the Code hierarchy?
chromatic Coke, I see your point. 18:29
pmichaud Tene: but I'm thinking that something that is inlined (e.g., in PIR) won't be accessible via interp anyway. 18:30
NotFound Coke: done
Tene pmichaud: does Perl 6's idea of .inline match literal inlining in PIR in every case? 18:31
pmichaud I hadn't looked closely at Perl 6's idea of .inline 18:32
I always considered it an optimization.
at any rate, I suspect that 'caller' ends up working by finding the current Routine and asking for its caller 18:33
Tene "The .inline method says whether this block was entered implicitly by some surrounding control structure."
NotFound "[TODO] Make breakpoints at labels" --> What does this mean in the current state? Sub entry points?
pmichaud Tene: then perhaps it's an attribute on the Code that is set at compile-time, for specific control structures. 18:34
although it might be more properly a property
Tene pmichaud: regardless, would you be okay with me adding a basic draft of a Context class and context() and caller() functions?
pmichaud Tene: as long as it doesn't generate a lot of dependencies in the existing code, I'm fine with it. 18:35
NotFound "[TODO] Debugger - Read core dumps" ---> I'll label that as [WISHLIST] rather than [TODO]
pmichaud like many other pieces -- I'm concerned with putting in "advanced" stuff before the basics are in place because we then have to rip-out/refactor the advanced stuff in order to fix the basics.
Tene nods. 18:36
pmichaud in particular, block code generation is about to receive a significant refactor anyway.
because STD.pm changed how it handles blocks.
Tene Ah, perhaps I'll wait until after that.
pmichaud: is 'make install' supported for rakudo? 18:39
pmichaud not yet.
Tene Okay.
pmichaud I think several people have been working on that but I haven't seen any official patches.
Tene nods
I was going to work on eval :lang with the new load_language op, but I'm not sure any languages support installing yet... :) 18:40
Coke NotFound: we still have labels. 18:42
jonathan pmichaud: I think there is a patch in our RT queue from Allison about make install?
Coke jonathan: I have a similar one for partcl! 18:43
apply mine too! =-)
pmichaud jonathan: allison's patch was from before I refactored Rakudo's Configure.pl and build 18:44
I think her patch also depends on us using Parrot's Configure.pl and makefile generator, which we no longer do.
jonathan pmichaud: Ah, OK. 18:45
NotFound Coke: but pir labels are strictly compile-time, isn't it?
pmichaud I haven't had time to go back and figure out what the relevant bits of the patch are. Beyond that, I think Parrot's mechanisms for dynops and dynpmcs have also chagned since then as well.
(and I haven't seen documentation for the new approach.)
barney Tene: Pipp should be installable 18:47
Coke NotFound: IWBNI if they weren't, from the standpoint of debuggng.
Tene barney: ah, nice. and it installs to wherever Parrot's language search path defaults to? 18:48
barney It installs somewhere below the 'prefix' from the installed parrot
use the --parrot-config option to Pipps Configure.pl 18:49
load_language op is not yet used 18:50
dalek kudo: b64e163 | pmichaud++ | src/ (2 files):
Move capitalize into Any-str.pm setting (RT #64060).
18:51
kudo: 7b3f8c4 | pmichaud++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
shorten dalek's url is at xrl.us/bemkig
shorten dalek's url is at xrl.us/bemkii
18:56 NordQ joined
darbelo Hi, is someone here familiar with the Summer of Code idea for BigNum et al? 19:00
jonathan darbelo: For Parrot or for Rakudo? 19:02
darbelo Parrot.
jonathan darbelo: I'm not the most familar with it, but I can might be able to answer some of what you want to know. :-)
darbelo I'm thinking of submitting a proposal for it and was looking for some guidance. 19:03
jonathan Nice! :-)
darbelo Mostly, what parrot needs from this PMC's and what sort of implementation is desired. 19:04
I recall that one of parrot's goals was to avoid depending on external libraries, but this seems to have changed since then. 19:06
chromatic Yeah, using IBM's standard decimal math library really seems like an advantage for us. 19:07
jonathan chromatic: Do you see us wanting some fallback, and then being able to use IBM's SDML for performance?
NotFound darbelo: we just wait for someone to write a full replacement fully portable and fast ;)
jonathan chromatic: Or us just using their library whatever?
dalek rrot: r37724 | NotFound++ | trunk/src/debug.c:
[debugger] mark disabled breakpoints in "L" listing
19:08
chromatic If I recall correctly, allison suggested adding a fallback of "Sorry, no BigNum support!" and using the library when possible. 19:10
jonathan Right. 19:11
darbelo: So it looks like essentially it's writing PMCs that wrap around the IBM library, and the stuff in our Configure script to probe for the library.
darbelo: Rakudo and other HLLs will then be able to use that to support similar types. 19:13
dalek kudo: c1c4307 | jnthn++ | src/classes/Multi.pir:
Revert an accidential change from earlier debugging.
shorten dalek's url is at xrl.us/bemkne
dalek kudo: a572337 | jnthn++ | src/ (2 files):
Fix up exporting (and as a result, importing) of multis.
kudo: 0f50d4f | jnthn++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
shorten dalek's url is at xrl.us/bemkng
shorten dalek's url is at xrl.us/bemkni
barney What keeps us from distributin that lib?
pmichaud what should Rakudo do if Parrot BigNum support isn't available? i.e., do we even have that option? 19:21
chromatic Allison thinks it's problematic.
darbelo Wait. What IBM library are talking about exactly? The ones I'm familiar with have limited architecture coverage. (AIX + Linux IIRC) 19:24
chromatic This one's more cross platform; it's linked from the numbers PDD. 19:25
darbelo Oh, ok. Iknow the one you mean. It's just to me "IBM's math library" has always been IMB's ESSL. 19:29
dalek pp: dc2e166 | (Bernhard Schmalhofer)++ | (3 files):
ignore 'break' statements
19:31
shorten dalek's url is at xrl.us/bemkqb
dalek pp: a67f4ca | (Bernhard Schmalhofer)++ | src/pct/actions.pm:
remove redundant blocktype() method calls
19:34
shorten dalek's url is at xrl.us/bemkq4
Coke (using 3rd party libraries instead of rolling our own, even as a fallback)++ ++ ++ 19:46
darbelo So, the whole thing boils down to "three PMC's that wrap decNumber, if available". 19:49
chromatic Basically. 19:54
darbelo It could be a mess for languages when BigNums are unavailable. 19:56
chromatic Unfortunately. 19:57
particle let the distro packagers worry about that
...oh, wait, that's still us. 19:58
For Now.
barney (reinventing wheels)--
NotFound (rolling out own as a fallback)-- If we roll our own, always use it! 20:00
TimToady phone 20:01
darbelo (multiple fallbacks) == (Maintainer Hell)
chromatic Yeah well, apparently "shipping NIH code under a compatible license" == architect hell, so no go. 20:02
NotFound We can ship an abbacus, just in case ;) 20:03
darbelo Arbitrary precision floating point math with an abbacus? No thanks. 20:04
davidfetter jhorwitz, hai 20:05
jhorwitz davidfetter: oh hai
davidfetter i was wondering about embedding parrot 20:06
what embeddings do you know about apart from yours?
jhorwitz Parrot::Embed
purl rumour has it Parrot::Embed is a perl module allowing you to embed a parrot interp in perl
davidfetter k 20:07
jhorwitz Padre also embeds parrot, though that may use Parrot::Embed...
davidfetter are both of those actual embeddings of the VM, or do any use IPC to talk to a running VM?
jhorwitz actual embedding
szabgab jhorwitz, it does
jhorwitz ah, straight from the horse's mouth. :)
davidfetter ok, so that's 2/2
heh
now that 1.0's out the door, i'm looking for suc^Wvolunteers to help with PL/Parrot :) 20:08
szabgab and then there is Inline::Rakudo that uses Parrot::Embed
davidfetter k 20:09
jhorwitz you should hit up YAPC this year -- the parrot VM workshop precedes it. 20:10
davidfetter yeah, that's the plan 20:17
i'd like to have something to present :) 20:18
NotFound davidfetter: examples/embed/lorito.c
davidfetter NotFound, belated thanks :) 20:40
NotFound 406 RTs left 20:43
Coke NotFound++ 20:45
dalek tracwiki: v1 | gaurav++ | GSOC2009 20:48
tracwiki: Initial writeup of GSoC 2009 details
tracwiki: trac.parrot.org/parrot/wiki/GSOC20...ction=diff
shorten dalek's url is at xrl.us/bemkzr
dalek tracwiki: v2 | gaurav++ | GSOC2009 20:51
tracwiki: Added a section for project listings
tracwiki: trac.parrot.org/parrot/wiki/GSOC20...ction=diff
shorten dalek's url is at xrl.us/bemk2h
dalek tracwiki: v5 | gaurav++ | GSOC2009Tasklist
tracwiki: Updated status, added link to in-wiki resources for students
tracwiki: trac.parrot.org/parrot/wiki/GSOC20...ction=diff
shorten dalek's url is at xrl.us/bemk2j
darbelo Hmm. Having a look at the decNumber site it looks like it has several licenses depending on where you get it. 20:54
Should the probing mechanism care? 20:56
Coke NotFound++ 21:06
dalek tracwiki: v3 | gaurav++ | GSOC2009 21:14
tracwiki: Fixed grammar
tracwiki: trac.parrot.org/parrot/wiki/GSOC20...ction=diff
tracwiki: v4 | gaurav++ | GSOC2009
tracwiki: Improved a section title
tracwiki: trac.parrot.org/parrot/wiki/GSOC20...ction=diff
shorten dalek's url is at xrl.us/bemk6m
dalek's url is at xrl.us/bemk6o
21:30 eternaleye joined
dalek tracwiki: v5 | gaurav++ | GSOC2009 21:31
tracwiki: Added some more general information and links
tracwiki: trac.parrot.org/parrot/wiki/GSOC20...ction=diff
shorten dalek's url is at xrl.us/bemk8u
21:49 NordQ joined 22:07 Theory joined
dalek kudo: bb22e02 | jnthn++ | (3 files):
Support specifying :tags when doing a use, which will import things with those tags. Default to :DEFAULT if none specified. Also always import :MANDATORY no matter what tags are specified.
22:11
shorten dalek's url is at xrl.us/bemmd7
22:32 Wizard joined
Wizard hi 22:32
can somebody help me with networking in parrot 22:33
?
darbelo what sort of networking? 22:39
Wizard I'm trying to create a socket, connect etc. but parrot says that 'socket' is not a sub 22:40
22:40 kid51 joined
Wizard I'm wondering where these subs exist? 22:40
and how to call them
jonathan Wizard: socket is an opcode, but was only added very recently.
Wizard: Which version/revision of Parrot are you looking at? 22:41
Wizard I got 1.0.0 build for win32
jonathan Ah, yes. :-(
Those didn't make it into 1.0.0.
Wizard ah. so how to make connection somewhere in this version of parrot? :) 22:42
jonathan If you're fine building stuff yourself, then grab the latest version from SVN. Otherwise it'll be in the next monthly release, which will again have a build. 22:43
Wizard ok. ty. will try to build it
jonathan 1.0.0 really wasn't kitted out so well for networking stuff. Sorry. 22:44
Wizard no problem. I just thought that version 1.0.0 mean that everything already there, and decide to play a little with parrot 22:45
jonathan Well, 1.0.0 is kidna "we got something stable and a nice toolchain to start building your compiler to target" more than "we've implemented everything we ever will". 22:46
moritz Wizard: it means "stable api", not "feature complete" (for some values of "stable") 22:47
but it was released to get people like you interested, so it fullfilled its purpose ;-) 22:48
Wizard then probably documentation is very optimistic ;) 22:49
jonathan Wizard: See the IO spec for Parrot - the sockets implementation that has gone in since should conform with that. So there should be some docs. :-) 22:50
Wizard: Also, there's a working http server in examples/io/ now ;-) 22:51
Wizard hmm. win32 install has no examples folder 22:52
jonathan Wizard: Hm. Though actually said example was added only earlier today too, so again, it's at svn head. 22:53
Wizard btw about sockets etc. dont you think that make such things like sockets as opcodes will make opcodes list to heavy? maybe it will be better to do more libraries with namespacing instead of opcodes?
jonathan Also at trac.parrot.org/parrot/browser/tru.../httpd.pir 22:54
shorten jonathan's url is at xrl.us/bemmif
Infinoid jonathan: what do we need to do to get sockets into rakudo? This is a feature I've been waiting for, for years. :)
jonathan Actually since the patch went in for the sockets stuff, a few folks have said that...
Infinoid: We pretty much should have what we need. mberends has already started on it. Join the fun! :-)
Wizard: It's possible we might drop the opcode forms and just have the method interface instead. 22:55
As I said, this only since 1.0.0 went in. 22:56
pmichaud istr that allison++ made a change that eliminated the opcode forms.
jonathan So there's a few weeks before 1.1.0 to settle on it, I guess...
pmichaud: Today?
purl Today is pretty close to planting day
pmichaud within the past day or so, yes.
jonathan pmichaud: 'cus they were there in the PDD this morning.
pmichaud: Anyway, if that's so, I won't miss 'em. 22:57
pmichaud I think she simply changed s/opcode/method/
jonathan Though maybe good to mention to mberends to make sure he's using the method forms and not the opcode forms. ;-)
pmichaud so that what used to be labeled "Network I/O Opcodes" now reads "Network I/O Methods"
jonathan ok 22:58
nice
Now we just need to get somebody to rip them out and make sure httpd.pir works fine with all the method forms instead, if it wasn't already using those.
Infinoid Can do. 22:59
pmichaud in particular, I don't see a 'socket' opcode in the PDD.
the change allison made is: trac.parrot.org/parrot/changeset/37648
"There are no network-specific opcodes."
jonathan Eh. 23:00
Infinoid++ # thanks :-)
Infinoid I'm a little confused, though.
so you'd do a $P0 = new "Socket"
and then call $P0."socket" to set the PF_INET, SOCK_STREAM, IPPROTO_TCP type stuff? 23:01
pmichaud that'd be my guess.
Infinoid I'll give it a try.
pmichaud "Socket" as a PMC type is mentioned only once in pdd22 23:02
Infinoid well, I assume I'd have to call the socket method on *something*, so Socket is my best guess
looks a little weird, but if it works, I won't complain much.
jonathan Infinoid: Also there is a SockAddr PMC... 23:03
Infinoid oh, good.
and presumably there is (or will be) a subclass for INET, INET6, netlink, etc 23:04
jonathan just point out that he didn't really understand the patch, he just wrote the Win32 port of it. ;-)
I'd guess something like that.
Infinoid jonathan++ # its been fun playing with that patch so far
jonathan I kinda figured there's enough people who would know what to do to improve things if the patch had rough edges that it should just go in. 23:05
Not to mention Rakudo folks really wanted it.
Infinoid What I really want is select(). But that's sort of a separate issue 23:06
23:08 eternaleye joined 23:19 TiMBuS joined 23:34 bacek_ joined
darbelo So, I've been getting up to speed with the decNumber code. Who should I ping for feedback on the BigNum proposal? 23:38
moritz darbelo: in case of doubt parrot-dev@lists.parrot.org 23:39
dalek rrot: r37725 | jkeenan++ | trunk/t/op/trans.t:
Updating the TT number under which this TODO is currently being tracked.
23:42
kid51 If anyone can run: usr/local/bin/perl t/harness --gc-debug -j t/op/trans.t and post results to trac.parrot.org/parrot/ticket/38, we could close out that ticket soon. 23:43
moritz with any particular revision?
kid51 HEAD, preferably 23:44
It's a bug that was only TODOed for 'make testj'
Preferably on Win32, BSDs, 64-bit platforms, etc etc. 23:45
Diversity of platforms is what we need to close ticket out.
... and our Smolder reports don't (usually) report the alternate runcores. 23:46
rg kid51: i don't think -j is working on 64bit platforms
moritz I ran it on amd64, I got Failed tests: 1-12, 14-22
rg or is that what you're trying to test?
darbelo OpenBSD 4.5-beta i386 FAILED tests 10-11, 19 23:47
kid51 Hrrm. Well, the TODO comment implied that it was failing with jit. It didn't refer to 64bit platforms. 23:48
So, maybe it will have to stay TODOed, albeit for different reasons.
darbelo: Can you post those failures, perhaps in trac.parrot.org/parrot/ticket/499 ? 23:49
23:50 tetragon joined
kid51 moritz: If I read you correctly, the one test that passed for you was the one we're discussing (#13). 23:50
moritz kid51: I didn't follow the discussion, but yes, #13 passed ;-) 23:51
kid51 Line 269 of t/op/trans.t: my @todo = ( $runcore =~ /--runcore=jit/ ? ( todo => 'broken under JIT TT #38' ) : () );
Okay, so we're concerned with 32-bit platforms. 23:52
rg freebsd/i386 7.1 fails the same tests as openbsd 23:53
kid51 rg Can you paste? 23:54
darbelo pastebin.com/d62af37e
is that what you needed? 23:55
rg there's also some more information in RT #36086, i've posted a simple example with which i've tried to debug the problem. i wasn't getting anywhere, though
kid51: paste here or attach to the ticket? 23:57
kid51 Hmm. TT38 seems to have been focused on test #13: atan2. If *that* test is passing, then I'd like to close that TT. But then we should open a new TT for the other errors. 23:58
rg But for the time being, please paste. 23:59